[Distutils] setup.cfg new format proposal
exarkun at twistedmatrix.com
exarkun at twistedmatrix.com
Fri Sep 11 16:47:11 CEST 2009
On 02:33 pm, ziade.tarek at gmail.com wrote:
>Hello
>
>here's a detailed proposal for the setup.cfg format. I've included all
>remarks,
>and tried to make the syntax as simple as possible. I've dropped the
>long_description
>stuff and the template language stuff. (people can do it as a
>post-release process)
>
>
>A/ Config file structure:
>
>"""
>[setup]
>foo: bar
>conditional-sections: one, two
>
>[one]
>condition: test
>
>[two]
>condition: test
>"""
The idea here is that the [setup] section includes everything in section
[one] if all of the "condition" clauses in [one] are satisfied, and
includes everything in section [two] if all of the "condition" clauses
in [two] are satisfied?
>2/ Execution environment:
>
> python_version = '%s.%s' % (sys.version_info[0], sys.version_info[1])
> os_name = os.name
> platform = sys.platform
> uname = os.uname()
> python_version_info = sys.version_info
>
>3/ Grammar:
>
>comp_op: '<'|'>'|'=='|'>='|'<='|'<>'|'!='|'in'|'not' 'in'|'is'|'is'
>'not'
>comparison: expr (comp_op expr)*
>expr:
>'python_version'|'python_version_info'|'os_name'|'uname'|'platform'|STRING
>test: or_test
>or_test: and_test ('or' and_test)*
>and_test: not_test ('and' not_test)*
>not_test: 'not' not_test | comparison
What's "STRING"? What's the precedence of and, or, and not? What does
this mean?
os_name > uname > 7
What does "is" mean?
Is this all really Python, with lots of features thrown out?
>
>4/ Process
>
>distutils will interpret [setup] and act upon, to fill the
>Distribution object and its metadata attribute object.
>It will look only for Metadata fields and ignores the others.
>
>In case an option is passed in setup.py, it overrides the one in
>setup.cfg.
>
>Let me know if it's good enough. I won't write a PEP for this change,
>and I will just push it for information at python-dev as soon as I get
>enough +1 :)
I'm a little skeptical about creating a new mini language (particularly
one with branching) for setup.cfg, but I haven't really been paying
close attention to this discussion. Still, it might be good to give a
brief summary of the justification for this someplace. Maybe you were
already planning to do that.
Jean-Paul
More information about the Distutils-SIG
mailing list