abravalheri / ini2toml Goto Github PK
View Code? Open in Web Editor NEWAutomatically conversion of `.ini/.cfg` files to TOML equivalents
Home Page: https://ini2toml.readthedocs.io/en/latest
License: Mozilla Public License 2.0
Automatically conversion of `.ini/.cfg` files to TOML equivalents
Home Page: https://ini2toml.readthedocs.io/en/latest
License: Mozilla Public License 2.0
Thank you for this project, someone opened a merge request in astroid using it (pylint-dev/astroid#1789) and this looks great.
I realized that the pylint configuration file (that are ini even if they have a specific name) are not migrated, I think this would be a cool feature.
I'm trying to package your module as an rpm package. So I'm using the typical PEP517 based build, install and test cycle used on building packages from non-root account.
python3 -sBm build -w --no-isolation
build
with --no-isolation
I'm using during all processes only locally installed modulesHere is pytest output:
tests/test_cli.py ......F [ 8%]
tests/test_examples.py EEEEEEEEEEEEEEEEEEEE.......... [ 42%]
tests/test_intermediate_repr.py ...... [ 49%]
tests/test_plugins.py ... [ 52%]
tests/test_transformations.py ..... [ 58%]
tests/test_translator.py ..... [ 64%]
tests/drivers/test_configparser.py . [ 65%]
tests/drivers/test_configupdater.py . [ 66%]
tests/drivers/test_full_toml.py . [ 67%]
tests/drivers/test_lite_toml.py . [ 68%]
tests/drivers/test_plain_builtins.py . [ 70%]
. F [ 71%]
tests/plugins/test_best_effort.py . [ 72%]
tests/plugins/test_coverage.py . [ 73%]
tests/plugins/test_isort.py . [ 74%]
tests/plugins/test_mypy.py . [ 75%]
tests/plugins/test_profile_independent_tasks.py .. [ 78%]
tests/plugins/test_pytest.py . [ 79%]
tests/plugins/test_setuptools_pep621.py .................. [100%]
================================================================================== ERRORS ==================================================================================
________________________________ ERROR at setup of test_examples_api[tests/examples/django/setup.cfg-tests/examples/django/pyproject.toml] _________________________________
@pytest.fixture(scope="module")
def validate():
"""Use ``validate-pyproject`` to validate the generated TOML"""
return Validator()
tests/test_examples.py:35:
/usr/lib/python3.8/site-packages/validate_pyproject/api.py:208: in init
self._schema_registry = SchemaRegistry(self._plugins)
/usr/lib/python3.8/site-packages/validate_pyproject/api.py:96: in init
top_level = cast(dict, load(TOP_LEVEL_SCHEMA)) # Make it mutable
/usr/lib/python3.8/site-packages/validate_pyproject/api.py:74: in load
return Schema(json.loads(read_text(package, f"{name}{ext}")))
/usr/lib64/python3.8/importlib/resources.py:169: in read_text
with open_text(package, resource, encoding, errors) as fp:
/usr/lib64/python3.8/importlib/resources.py:125: in open_text
return TextIOWrapper(reader.open_resource(resource), encoding, errors)
self = <_frozen_importlib_external.SourceFileLoader object at 0x7fa993e62f40>, resource = 'pyproject_toml.schema.json'
???
E FileNotFoundError: [Errno 2] No such file or directory: '/usr/lib/python3.8/site-packages/validate_pyproject/pyproject_toml.schema.json'
:1048: FileNotFoundError
_________________________________ ERROR at setup of test_examples_api[tests/examples/flask/setup.cfg-tests/examples/flask/pyproject.toml] __________________________________
@pytest.fixture(scope="module")
def validate():
"""Use ``validate-pyproject`` to validate the generated TOML"""
return Validator()
tests/test_examples.py:35:
/usr/lib/python3.8/site-packages/validate_pyproject/api.py:208: in init
self._schema_registry = SchemaRegistry(self._plugins)
/usr/lib/python3.8/site-packages/validate_pyproject/api.py:96: in init
top_level = cast(dict, load(TOP_LEVEL_SCHEMA)) # Make it mutable
/usr/lib/python3.8/site-packages/validate_pyproject/api.py:74: in load
return Schema(json.loads(read_text(package, f"{name}{ext}")))
/usr/lib64/python3.8/importlib/resources.py:169: in read_text
with open_text(package, resource, encoding, errors) as fp:
/usr/lib64/python3.8/importlib/resources.py:125: in open_text
return TextIOWrapper(reader.open_resource(resource), encoding, errors)
self = <_frozen_importlib_external.SourceFileLoader object at 0x7fa993e62f40>, resource = 'pyproject_toml.schema.json'
???
E FileNotFoundError: [Errno 2] No such file or directory: '/usr/lib/python3.8/site-packages/validate_pyproject/pyproject_toml.schema.json'
:1048: FileNotFoundError
________________________________ ERROR at setup of test_examples_api[tests/examples/pandas/setup.cfg-tests/examples/pandas/pyproject.toml] _________________________________
@pytest.fixture(scope="module")
def validate():
"""Use ``validate-pyproject`` to validate the generated TOML"""
return Validator()
tests/test_examples.py:35:
/usr/lib/python3.8/site-packages/validate_pyproject/api.py:208: in init
self._schema_registry = SchemaRegistry(self._plugins)
/usr/lib/python3.8/site-packages/validate_pyproject/api.py:96: in init
top_level = cast(dict, load(TOP_LEVEL_SCHEMA)) # Make it mutable
/usr/lib/python3.8/site-packages/validate_pyproject/api.py:74: in load
return Schema(json.loads(read_text(package, f"{name}{ext}")))
/usr/lib64/python3.8/importlib/resources.py:169: in read_text
with open_text(package, resource, encoding, errors) as fp:
/usr/lib64/python3.8/importlib/resources.py:125: in open_text
return TextIOWrapper(reader.open_resource(resource), encoding, errors)
self = <_frozen_importlib_external.SourceFileLoader object at 0x7fa993e62f40>, resource = 'pyproject_toml.schema.json'
???
E FileNotFoundError: [Errno 2] No such file or directory: '/usr/lib/python3.8/site-packages/validate_pyproject/pyproject_toml.schema.json'
:1048: FileNotFoundError
________________________________ ERROR at setup of test_examples_api[tests/examples/pluggy/setup.cfg-tests/examples/pluggy/pyproject.toml] _________________________________
@pytest.fixture(scope="module")
def validate():
"""Use ``validate-pyproject`` to validate the generated TOML"""
return Validator()
tests/test_examples.py:35:
/usr/lib/python3.8/site-packages/validate_pyproject/api.py:208: in init
self._schema_registry = SchemaRegistry(self._plugins)
/usr/lib/python3.8/site-packages/validate_pyproject/api.py:96: in init
top_level = cast(dict, load(TOP_LEVEL_SCHEMA)) # Make it mutable
/usr/lib/python3.8/site-packages/validate_pyproject/api.py:74: in load
return Schema(json.loads(read_text(package, f"{name}{ext}")))
/usr/lib64/python3.8/importlib/resources.py:169: in read_text
with open_text(package, resource, encoding, errors) as fp:
/usr/lib64/python3.8/importlib/resources.py:125: in open_text
return TextIOWrapper(reader.open_resource(resource), encoding, errors)
self = <_frozen_importlib_external.SourceFileLoader object at 0x7fa993e62f40>, resource = 'pyproject_toml.schema.json'
???
E FileNotFoundError: [Errno 2] No such file or directory: '/usr/lib/python3.8/site-packages/validate_pyproject/pyproject_toml.schema.json'
:1048: FileNotFoundError
_______________________________ ERROR at setup of test_examples_api[tests/examples/plumbum/setup.cfg-tests/examples/plumbum/pyproject.toml] ________________________________
@pytest.fixture(scope="module")
def validate():
"""Use ``validate-pyproject`` to validate the generated TOML"""
return Validator()
tests/test_examples.py:35:
/usr/lib/python3.8/site-packages/validate_pyproject/api.py:208: in init
self._schema_registry = SchemaRegistry(self._plugins)
/usr/lib/python3.8/site-packages/validate_pyproject/api.py:96: in init
top_level = cast(dict, load(TOP_LEVEL_SCHEMA)) # Make it mutable
/usr/lib/python3.8/site-packages/validate_pyproject/api.py:74: in load
return Schema(json.loads(read_text(package, f"{name}{ext}")))
/usr/lib64/python3.8/importlib/resources.py:169: in read_text
with open_text(package, resource, encoding, errors) as fp:
/usr/lib64/python3.8/importlib/resources.py:125: in open_text
return TextIOWrapper(reader.open_resource(resource), encoding, errors)
self = <_frozen_importlib_external.SourceFileLoader object at 0x7fa993e62f40>, resource = 'pyproject_toml.schema.json'
???
E FileNotFoundError: [Errno 2] No such file or directory: '/usr/lib/python3.8/site-packages/validate_pyproject/pyproject_toml.schema.json'
:1048: FileNotFoundError
____________________________ ERROR at setup of test_examples_api[tests/examples/pyscaffold/setup.cfg-tests/examples/pyscaffold/pyproject.toml] _____________________________
@pytest.fixture(scope="module")
def validate():
"""Use ``validate-pyproject`` to validate the generated TOML"""
return Validator()
tests/test_examples.py:35:
/usr/lib/python3.8/site-packages/validate_pyproject/api.py:208: in init
self._schema_registry = SchemaRegistry(self._plugins)
/usr/lib/python3.8/site-packages/validate_pyproject/api.py:96: in init
top_level = cast(dict, load(TOP_LEVEL_SCHEMA)) # Make it mutable
/usr/lib/python3.8/site-packages/validate_pyproject/api.py:74: in load
return Schema(json.loads(read_text(package, f"{name}{ext}")))
/usr/lib64/python3.8/importlib/resources.py:169: in read_text
with open_text(package, resource, encoding, errors) as fp:
/usr/lib64/python3.8/importlib/resources.py:125: in open_text
return TextIOWrapper(reader.open_resource(resource), encoding, errors)
self = <_frozen_importlib_external.SourceFileLoader object at 0x7fa993e62f40>, resource = 'pyproject_toml.schema.json'
???
E FileNotFoundError: [Errno 2] No such file or directory: '/usr/lib/python3.8/site-packages/validate_pyproject/pyproject_toml.schema.json'
:1048: FileNotFoundError
_______________________ ERROR at setup of test_examples_api[tests/examples/setuptools_docs/setup.cfg-tests/examples/setuptools_docs/pyproject.toml] ________________________
@pytest.fixture(scope="module")
def validate():
"""Use ``validate-pyproject`` to validate the generated TOML"""
return Validator()
tests/test_examples.py:35:
/usr/lib/python3.8/site-packages/validate_pyproject/api.py:208: in init
self._schema_registry = SchemaRegistry(self._plugins)
/usr/lib/python3.8/site-packages/validate_pyproject/api.py:96: in init
top_level = cast(dict, load(TOP_LEVEL_SCHEMA)) # Make it mutable
/usr/lib/python3.8/site-packages/validate_pyproject/api.py:74: in load
return Schema(json.loads(read_text(package, f"{name}{ext}")))
/usr/lib64/python3.8/importlib/resources.py:169: in read_text
with open_text(package, resource, encoding, errors) as fp:
/usr/lib64/python3.8/importlib/resources.py:125: in open_text
return TextIOWrapper(reader.open_resource(resource), encoding, errors)
self = <_frozen_importlib_external.SourceFileLoader object at 0x7fa993e62f40>, resource = 'pyproject_toml.schema.json'
???
E FileNotFoundError: [Errno 2] No such file or directory: '/usr/lib/python3.8/site-packages/validate_pyproject/pyproject_toml.schema.json'
:1048: FileNotFoundError
________________________ ERROR at setup of test_examples_api[tests/examples/setuptools_scm/setup.cfg-tests/examples/setuptools_scm/pyproject.toml] _________________________
@pytest.fixture(scope="module")
def validate():
"""Use ``validate-pyproject`` to validate the generated TOML"""
return Validator()
tests/test_examples.py:35:
/usr/lib/python3.8/site-packages/validate_pyproject/api.py:208: in init
self._schema_registry = SchemaRegistry(self._plugins)
/usr/lib/python3.8/site-packages/validate_pyproject/api.py:96: in init
top_level = cast(dict, load(TOP_LEVEL_SCHEMA)) # Make it mutable
/usr/lib/python3.8/site-packages/validate_pyproject/api.py:74: in load
return Schema(json.loads(read_text(package, f"{name}{ext}")))
/usr/lib64/python3.8/importlib/resources.py:169: in read_text
with open_text(package, resource, encoding, errors) as fp:
/usr/lib64/python3.8/importlib/resources.py:125: in open_text
return TextIOWrapper(reader.open_resource(resource), encoding, errors)
self = <_frozen_importlib_external.SourceFileLoader object at 0x7fa993e62f40>, resource = 'pyproject_toml.schema.json'
???
E FileNotFoundError: [Errno 2] No such file or directory: '/usr/lib/python3.8/site-packages/validate_pyproject/pyproject_toml.schema.json'
:1048: FileNotFoundError
____________________________ ERROR at setup of test_examples_api[tests/examples/virtualenv/setup.cfg-tests/examples/virtualenv/pyproject.toml] _____________________________
@pytest.fixture(scope="module")
def validate():
"""Use ``validate-pyproject`` to validate the generated TOML"""
return Validator()
tests/test_examples.py:35:
/usr/lib/python3.8/site-packages/validate_pyproject/api.py:208: in init
self._schema_registry = SchemaRegistry(self._plugins)
/usr/lib/python3.8/site-packages/validate_pyproject/api.py:96: in init
top_level = cast(dict, load(TOP_LEVEL_SCHEMA)) # Make it mutable
/usr/lib/python3.8/site-packages/validate_pyproject/api.py:74: in load
return Schema(json.loads(read_text(package, f"{name}{ext}")))
/usr/lib64/python3.8/importlib/resources.py:169: in read_text
with open_text(package, resource, encoding, errors) as fp:
/usr/lib64/python3.8/importlib/resources.py:125: in open_text
return TextIOWrapper(reader.open_resource(resource), encoding, errors)
self = <_frozen_importlib_external.SourceFileLoader object at 0x7fa993e62f40>, resource = 'pyproject_toml.schema.json'
???
E FileNotFoundError: [Errno 2] No such file or directory: '/usr/lib/python3.8/site-packages/validate_pyproject/pyproject_toml.schema.json'
:1048: FileNotFoundError
__________________________________ ERROR at setup of test_examples_api[tests/examples/zipp/setup.cfg-tests/examples/zipp/pyproject.toml] ___________________________________
@pytest.fixture(scope="module")
def validate():
"""Use ``validate-pyproject`` to validate the generated TOML"""
return Validator()
tests/test_examples.py:35:
/usr/lib/python3.8/site-packages/validate_pyproject/api.py:208: in init
self._schema_registry = SchemaRegistry(self._plugins)
/usr/lib/python3.8/site-packages/validate_pyproject/api.py:96: in init
top_level = cast(dict, load(TOP_LEVEL_SCHEMA)) # Make it mutable
/usr/lib/python3.8/site-packages/validate_pyproject/api.py:74: in load
return Schema(json.loads(read_text(package, f"{name}{ext}")))
/usr/lib64/python3.8/importlib/resources.py:169: in read_text
with open_text(package, resource, encoding, errors) as fp:
/usr/lib64/python3.8/importlib/resources.py:125: in open_text
return TextIOWrapper(reader.open_resource(resource), encoding, errors)
self = <_frozen_importlib_external.SourceFileLoader object at 0x7fa993e62f40>, resource = 'pyproject_toml.schema.json'
???
E FileNotFoundError: [Errno 2] No such file or directory: '/usr/lib/python3.8/site-packages/validate_pyproject/pyproject_toml.schema.json'
:1048: FileNotFoundError
______________________________ ERROR at setup of test_examples_api_lite[tests/examples/django/setup.cfg-tests/examples/django/pyproject.toml] ______________________________
@pytest.fixture(scope="module")
def validate():
"""Use ``validate-pyproject`` to validate the generated TOML"""
return Validator()
tests/test_examples.py:35:
/usr/lib/python3.8/site-packages/validate_pyproject/api.py:208: in init
self._schema_registry = SchemaRegistry(self._plugins)
/usr/lib/python3.8/site-packages/validate_pyproject/api.py:96: in init
top_level = cast(dict, load(TOP_LEVEL_SCHEMA)) # Make it mutable
/usr/lib/python3.8/site-packages/validate_pyproject/api.py:74: in load
return Schema(json.loads(read_text(package, f"{name}{ext}")))
/usr/lib64/python3.8/importlib/resources.py:169: in read_text
with open_text(package, resource, encoding, errors) as fp:
/usr/lib64/python3.8/importlib/resources.py:125: in open_text
return TextIOWrapper(reader.open_resource(resource), encoding, errors)
self = <_frozen_importlib_external.SourceFileLoader object at 0x7fa993e62f40>, resource = 'pyproject_toml.schema.json'
???
E FileNotFoundError: [Errno 2] No such file or directory: '/usr/lib/python3.8/site-packages/validate_pyproject/pyproject_toml.schema.json'
:1048: FileNotFoundError
_______________________________ ERROR at setup of test_examples_api_lite[tests/examples/flask/setup.cfg-tests/examples/flask/pyproject.toml] _______________________________
@pytest.fixture(scope="module")
def validate():
"""Use ``validate-pyproject`` to validate the generated TOML"""
return Validator()
tests/test_examples.py:35:
/usr/lib/python3.8/site-packages/validate_pyproject/api.py:208: in init
self._schema_registry = SchemaRegistry(self._plugins)
/usr/lib/python3.8/site-packages/validate_pyproject/api.py:96: in init
top_level = cast(dict, load(TOP_LEVEL_SCHEMA)) # Make it mutable
/usr/lib/python3.8/site-packages/validate_pyproject/api.py:74: in load
return Schema(json.loads(read_text(package, f"{name}{ext}")))
/usr/lib64/python3.8/importlib/resources.py:169: in read_text
with open_text(package, resource, encoding, errors) as fp:
/usr/lib64/python3.8/importlib/resources.py:125: in open_text
return TextIOWrapper(reader.open_resource(resource), encoding, errors)
self = <_frozen_importlib_external.SourceFileLoader object at 0x7fa993e62f40>, resource = 'pyproject_toml.schema.json'
???
E FileNotFoundError: [Errno 2] No such file or directory: '/usr/lib/python3.8/site-packages/validate_pyproject/pyproject_toml.schema.json'
:1048: FileNotFoundError
______________________________ ERROR at setup of test_examples_api_lite[tests/examples/pandas/setup.cfg-tests/examples/pandas/pyproject.toml] ______________________________
@pytest.fixture(scope="module")
def validate():
"""Use ``validate-pyproject`` to validate the generated TOML"""
return Validator()
tests/test_examples.py:35:
/usr/lib/python3.8/site-packages/validate_pyproject/api.py:208: in init
self._schema_registry = SchemaRegistry(self._plugins)
/usr/lib/python3.8/site-packages/validate_pyproject/api.py:96: in init
top_level = cast(dict, load(TOP_LEVEL_SCHEMA)) # Make it mutable
/usr/lib/python3.8/site-packages/validate_pyproject/api.py:74: in load
return Schema(json.loads(read_text(package, f"{name}{ext}")))
/usr/lib64/python3.8/importlib/resources.py:169: in read_text
with open_text(package, resource, encoding, errors) as fp:
/usr/lib64/python3.8/importlib/resources.py:125: in open_text
return TextIOWrapper(reader.open_resource(resource), encoding, errors)
self = <_frozen_importlib_external.SourceFileLoader object at 0x7fa993e62f40>, resource = 'pyproject_toml.schema.json'
???
E FileNotFoundError: [Errno 2] No such file or directory: '/usr/lib/python3.8/site-packages/validate_pyproject/pyproject_toml.schema.json'
:1048: FileNotFoundError
______________________________ ERROR at setup of test_examples_api_lite[tests/examples/pluggy/setup.cfg-tests/examples/pluggy/pyproject.toml] ______________________________
@pytest.fixture(scope="module")
def validate():
"""Use ``validate-pyproject`` to validate the generated TOML"""
return Validator()
tests/test_examples.py:35:
/usr/lib/python3.8/site-packages/validate_pyproject/api.py:208: in init
self._schema_registry = SchemaRegistry(self._plugins)
/usr/lib/python3.8/site-packages/validate_pyproject/api.py:96: in init
top_level = cast(dict, load(TOP_LEVEL_SCHEMA)) # Make it mutable
/usr/lib/python3.8/site-packages/validate_pyproject/api.py:74: in load
return Schema(json.loads(read_text(package, f"{name}{ext}")))
/usr/lib64/python3.8/importlib/resources.py:169: in read_text
with open_text(package, resource, encoding, errors) as fp:
/usr/lib64/python3.8/importlib/resources.py:125: in open_text
return TextIOWrapper(reader.open_resource(resource), encoding, errors)
self = <_frozen_importlib_external.SourceFileLoader object at 0x7fa993e62f40>, resource = 'pyproject_toml.schema.json'
???
E FileNotFoundError: [Errno 2] No such file or directory: '/usr/lib/python3.8/site-packages/validate_pyproject/pyproject_toml.schema.json'
:1048: FileNotFoundError
_____________________________ ERROR at setup of test_examples_api_lite[tests/examples/plumbum/setup.cfg-tests/examples/plumbum/pyproject.toml] _____________________________
@pytest.fixture(scope="module")
def validate():
"""Use ``validate-pyproject`` to validate the generated TOML"""
return Validator()
tests/test_examples.py:35:
/usr/lib/python3.8/site-packages/validate_pyproject/api.py:208: in init
self._schema_registry = SchemaRegistry(self._plugins)
/usr/lib/python3.8/site-packages/validate_pyproject/api.py:96: in init
top_level = cast(dict, load(TOP_LEVEL_SCHEMA)) # Make it mutable
/usr/lib/python3.8/site-packages/validate_pyproject/api.py:74: in load
return Schema(json.loads(read_text(package, f"{name}{ext}")))
/usr/lib64/python3.8/importlib/resources.py:169: in read_text
with open_text(package, resource, encoding, errors) as fp:
/usr/lib64/python3.8/importlib/resources.py:125: in open_text
return TextIOWrapper(reader.open_resource(resource), encoding, errors)
self = <_frozen_importlib_external.SourceFileLoader object at 0x7fa993e62f40>, resource = 'pyproject_toml.schema.json'
???
E FileNotFoundError: [Errno 2] No such file or directory: '/usr/lib/python3.8/site-packages/validate_pyproject/pyproject_toml.schema.json'
:1048: FileNotFoundError
__________________________ ERROR at setup of test_examples_api_lite[tests/examples/pyscaffold/setup.cfg-tests/examples/pyscaffold/pyproject.toml] __________________________
@pytest.fixture(scope="module")
def validate():
"""Use ``validate-pyproject`` to validate the generated TOML"""
return Validator()
tests/test_examples.py:35:
/usr/lib/python3.8/site-packages/validate_pyproject/api.py:208: in init
self._schema_registry = SchemaRegistry(self._plugins)
/usr/lib/python3.8/site-packages/validate_pyproject/api.py:96: in init
top_level = cast(dict, load(TOP_LEVEL_SCHEMA)) # Make it mutable
/usr/lib/python3.8/site-packages/validate_pyproject/api.py:74: in load
return Schema(json.loads(read_text(package, f"{name}{ext}")))
/usr/lib64/python3.8/importlib/resources.py:169: in read_text
with open_text(package, resource, encoding, errors) as fp:
/usr/lib64/python3.8/importlib/resources.py:125: in open_text
return TextIOWrapper(reader.open_resource(resource), encoding, errors)
self = <_frozen_importlib_external.SourceFileLoader object at 0x7fa993e62f40>, resource = 'pyproject_toml.schema.json'
???
E FileNotFoundError: [Errno 2] No such file or directory: '/usr/lib/python3.8/site-packages/validate_pyproject/pyproject_toml.schema.json'
:1048: FileNotFoundError
_____________________ ERROR at setup of test_examples_api_lite[tests/examples/setuptools_docs/setup.cfg-tests/examples/setuptools_docs/pyproject.toml] _____________________
@pytest.fixture(scope="module")
def validate():
"""Use ``validate-pyproject`` to validate the generated TOML"""
return Validator()
tests/test_examples.py:35:
/usr/lib/python3.8/site-packages/validate_pyproject/api.py:208: in init
self._schema_registry = SchemaRegistry(self._plugins)
/usr/lib/python3.8/site-packages/validate_pyproject/api.py:96: in init
top_level = cast(dict, load(TOP_LEVEL_SCHEMA)) # Make it mutable
/usr/lib/python3.8/site-packages/validate_pyproject/api.py:74: in load
return Schema(json.loads(read_text(package, f"{name}{ext}")))
/usr/lib64/python3.8/importlib/resources.py:169: in read_text
with open_text(package, resource, encoding, errors) as fp:
/usr/lib64/python3.8/importlib/resources.py:125: in open_text
return TextIOWrapper(reader.open_resource(resource), encoding, errors)
self = <_frozen_importlib_external.SourceFileLoader object at 0x7fa993e62f40>, resource = 'pyproject_toml.schema.json'
???
E FileNotFoundError: [Errno 2] No such file or directory: '/usr/lib/python3.8/site-packages/validate_pyproject/pyproject_toml.schema.json'
:1048: FileNotFoundError
______________________ ERROR at setup of test_examples_api_lite[tests/examples/setuptools_scm/setup.cfg-tests/examples/setuptools_scm/pyproject.toml] ______________________
@pytest.fixture(scope="module")
def validate():
"""Use ``validate-pyproject`` to validate the generated TOML"""
return Validator()
tests/test_examples.py:35:
/usr/lib/python3.8/site-packages/validate_pyproject/api.py:208: in init
self._schema_registry = SchemaRegistry(self._plugins)
/usr/lib/python3.8/site-packages/validate_pyproject/api.py:96: in init
top_level = cast(dict, load(TOP_LEVEL_SCHEMA)) # Make it mutable
/usr/lib/python3.8/site-packages/validate_pyproject/api.py:74: in load
return Schema(json.loads(read_text(package, f"{name}{ext}")))
/usr/lib64/python3.8/importlib/resources.py:169: in read_text
with open_text(package, resource, encoding, errors) as fp:
/usr/lib64/python3.8/importlib/resources.py:125: in open_text
return TextIOWrapper(reader.open_resource(resource), encoding, errors)
self = <_frozen_importlib_external.SourceFileLoader object at 0x7fa993e62f40>, resource = 'pyproject_toml.schema.json'
???
E FileNotFoundError: [Errno 2] No such file or directory: '/usr/lib/python3.8/site-packages/validate_pyproject/pyproject_toml.schema.json'
:1048: FileNotFoundError
__________________________ ERROR at setup of test_examples_api_lite[tests/examples/virtualenv/setup.cfg-tests/examples/virtualenv/pyproject.toml] __________________________
@pytest.fixture(scope="module")
def validate():
"""Use ``validate-pyproject`` to validate the generated TOML"""
return Validator()
tests/test_examples.py:35:
/usr/lib/python3.8/site-packages/validate_pyproject/api.py:208: in init
self._schema_registry = SchemaRegistry(self._plugins)
/usr/lib/python3.8/site-packages/validate_pyproject/api.py:96: in init
top_level = cast(dict, load(TOP_LEVEL_SCHEMA)) # Make it mutable
/usr/lib/python3.8/site-packages/validate_pyproject/api.py:74: in load
return Schema(json.loads(read_text(package, f"{name}{ext}")))
/usr/lib64/python3.8/importlib/resources.py:169: in read_text
with open_text(package, resource, encoding, errors) as fp:
/usr/lib64/python3.8/importlib/resources.py:125: in open_text
return TextIOWrapper(reader.open_resource(resource), encoding, errors)
self = <_frozen_importlib_external.SourceFileLoader object at 0x7fa993e62f40>, resource = 'pyproject_toml.schema.json'
???
E FileNotFoundError: [Errno 2] No such file or directory: '/usr/lib/python3.8/site-packages/validate_pyproject/pyproject_toml.schema.json'
:1048: FileNotFoundError
________________________________ ERROR at setup of test_examples_api_lite[tests/examples/zipp/setup.cfg-tests/examples/zipp/pyproject.toml] ________________________________
@pytest.fixture(scope="module")
def validate():
"""Use ``validate-pyproject`` to validate the generated TOML"""
return Validator()
tests/test_examples.py:35:
/usr/lib/python3.8/site-packages/validate_pyproject/api.py:208: in init
self._schema_registry = SchemaRegistry(self._plugins)
/usr/lib/python3.8/site-packages/validate_pyproject/api.py:96: in init
top_level = cast(dict, load(TOP_LEVEL_SCHEMA)) # Make it mutable
/usr/lib/python3.8/site-packages/validate_pyproject/api.py:74: in load
return Schema(json.loads(read_text(package, f"{name}{ext}")))
/usr/lib64/python3.8/importlib/resources.py:169: in read_text
with open_text(package, resource, encoding, errors) as fp:
/usr/lib64/python3.8/importlib/resources.py:125: in open_text
return TextIOWrapper(reader.open_resource(resource), encoding, errors)
self = <_frozen_importlib_external.SourceFileLoader object at 0x7fa993e62f40>, resource = 'pyproject_toml.schema.json'
???
E FileNotFoundError: [Errno 2] No such file or directory: '/usr/lib/python3.8/site-packages/validate_pyproject/pyproject_toml.schema.json'
:1048: FileNotFoundError
================================================================================= FAILURES =================================================================================
___________________________________________________________________________ test_auto_formatting ___________________________________________________________________________
tmp_path = PosixPath('/tmp/pytest-of-tkloczko/pytest-356/test_auto_formatting0'), capsys = <_pytest.capture.CaptureFixture object at 0x7fa9939da8e0>
def test_auto_formatting(tmp_path, capsys):
setupcfg = """
[metadata]
version = 42
name = myproj
"""
normal_output = """
requires = ["setuptools"]
"""
expected = """
requires = [
"setuptools",
]
"""
# Check if the underlying function works
formatted = cli.apply_auto_formatting(cleandoc(expected))
assert formatted.strip() == cleandoc(expected).strip()
(tmp_path / "setup.cfg").write_text(cleandoc(setupcfg), encoding="utf-8")
assert (tmp_path / "setup.cfg").exists()
# Check the output when formatting in off
cli.run([str(tmp_path / "setup.cfg")])
out, _ = capsys.readouterr()
assert cleandoc(normal_output) in out
assert cleandoc(expected) not in out
# Check the output when formatting in on
cli.run(["-F", str(tmp_path / "setup.cfg")])
tests/test_cli.py:137:
/usr/lib64/python3.8/contextlib.py:75: in inner
return func(*args, **kwds)
../../BUILDROOT/python-ini2toml-0.10-2.fc35.x86_64/usr/lib/python3.8/site-packages/ini2toml/cli.py:196: in run
params = parse_args(args, profiles, profile_augmentations)
/usr/lib64/python3.8/contextlib.py:75: in inner
return func(*args, **kwds)
../../BUILDROOT/python-ini2toml-0.10-2.fc35.x86_64/usr/lib/python3.8/site-packages/ini2toml/cli.py:150: in parse_args
params = parser.parse_args(args)
/usr/lib64/python3.8/argparse.py:1771: in parse_args
self.error(msg % ' '.join(argv))
/usr/lib64/python3.8/argparse.py:2521: in error
self.exit(2, _('%(prog)s: error: %(message)s\n') % args)
self = ArgumentParser(prog='pytest', usage=None, description='Automatically converts .cfg/.ini files into TOML', formatter_class=<class 'ini2toml.cli.Formatter'>, conflict_handler='error', add_help=True)
status = 2, message = 'pytest: error: unrecognized arguments: -F\n'
def exit(self, status=0, message=None):
if message:
self._print_message(message, _sys.stderr)
_sys.exit(status)
E SystemExit: 2
/usr/lib64/python3.8/argparse.py:2508: SystemExit
--------------------------------------------------------------------------- Captured stderr call ---------------------------------------------------------------------------
usage: pytest [-h] [-V] [-o OUTPUT_FILE] [-p PROFILE]
[-D TRANSFORMATION [TRANSFORMATION ...]] [-v] [-vv]
input_file
pytest: error: unrecognized arguments: -F
_______________________________________________________________________________ test session _______________________________________________________________________________
cls = <class '_pytest.runner.CallInfo'>, func = <function call_runtest_hook.. at 0x7fa99398b280>, when = 'call'
reraise = (<class '_pytest.outcomes.Exit'>, <class 'KeyboardInterrupt'>)
@classmethod
def from_call(
cls,
func: "Callable[[], TResult]",
when: "Literal['collect', 'setup', 'call', 'teardown']",
reraise: Optional[
Union[Type[BaseException], Tuple[Type[BaseException], ...]]
] = None,
) -> "CallInfo[TResult]":
"""Call func, wrapping the result in a CallInfo.
:param func:
The function to call. Called without arguments.
:param when:
The phase in which the function is called.
:param reraise:
Exception or exceptions that shall propagate if raised by the
function, instead of being wrapped in the CallInfo.
"""
excinfo = None
start = timing.time()
precise_start = timing.perf_counter()
try:
result: Optional[TResult] = func()
/usr/lib/python3.8/site-packages/_pytest/runner.py:338:
lambda: ihook(item=item, **kwds), when=when, reraise=reraise
)
/usr/lib/python3.8/site-packages/_pytest/runner.py:259:
self = <_HookCaller 'pytest_runtest_call'>, args = (), kwargs = {'item': }, argname = 'item', firstresult = False
def __call__(self, *args, **kwargs):
if args:
raise TypeError("hook calling supports only keyword arguments")
assert not self.is_historic()
# This is written to avoid expensive operations when not needed.
if self.spec:
for argname in self.spec.argnames:
if argname not in kwargs:
notincall = tuple(set(self.spec.argnames) - kwargs.keys())
warnings.warn(
"Argument(s) {} which are declared in the hookspec "
"can not be found in this hook call".format(notincall),
stacklevel=2,
)
break
firstresult = self.spec.opts.get("firstresult")
else:
firstresult = False
return self._hookexec(self.name, self.get_hookimpls(), kwargs, firstresult)
/usr/lib/python3.8/site-packages/pluggy/_hooks.py:265:
self = <_pytest.config.PytestPluginManager object at 0x7fa995f9cbb0>, hook_name = 'pytest_runtest_call'
methods = [<HookImpl plugin_name='runner', plugin=<module '_pytest.runner' from '/usr/lib/python3.8/site-packages/_pytest/runner...in=<module '_pytest.unraisableexception' from '/usr/lib/python3.8/site-packages/_pytest/unraisableexception.py'>>, ...]
kwargs = {'item': }, firstresult = False
def _hookexec(self, hook_name, methods, kwargs, firstresult):
# called from all hookcaller instances.
# enable_tracing will set its own wrapping function at self._inner_hookexec
return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
/usr/lib/python3.8/site-packages/pluggy/_manager.py:80:
hook_name = 'pytest_runtest_call'
hook_impls = [<HookImpl plugin_name='runner', plugin=<module '_pytest.runner' from '/usr/lib/python3.8/site-packages/_pytest/runner...in=<module '_pytest.unraisableexception' from '/usr/lib/python3.8/site-packages/_pytest/unraisableexception.py'>>, ...]
caller_kwargs = {'item': }, firstresult = False
def _multicall(hook_name, hook_impls, caller_kwargs, firstresult):
"""Execute a call into multiple python functions/methods and return the
result(s).
``caller_kwargs`` comes from _HookCaller.__call__().
"""
__tracebackhide__ = True
results = []
excinfo = None
try: # run impl and wrapper setup functions in a loop
teardowns = []
try:
for hook_impl in reversed(hook_impls):
try:
args = [caller_kwargs[argname] for argname in hook_impl.argnames]
except KeyError:
for argname in hook_impl.argnames:
if argname not in caller_kwargs:
raise HookCallError(
f"hook call must provide argument {argname!r}"
)
if hook_impl.hookwrapper:
try:
gen = hook_impl.function(*args)
next(gen) # first yield
teardowns.append(gen)
except StopIteration:
_raise_wrapfail(gen, "did not yield")
else:
res = hook_impl.function(*args)
if res is not None:
results.append(res)
if firstresult: # halt further impl calls
break
except BaseException:
excinfo = sys.exc_info()
finally:
if firstresult: # first result hooks return a single value
outcome = _Result(results[0] if results else None, excinfo)
else:
outcome = _Result(results, excinfo)
# run all wrapper post-yield blocks
for gen in reversed(teardowns):
try:
gen.send(outcome)
_raise_wrapfail(gen, "has second yield")
except StopIteration:
pass
return outcome.get_result()
/usr/lib/python3.8/site-packages/pluggy/_callers.py:60:
self = <pluggy._result._Result object at 0x7fa9938127c0>
def get_result(self):
"""Get the result(s) for this hook call.
If the hook was marked as a ``firstresult`` only a single value
will be returned otherwise a list of results.
"""
__tracebackhide__ = True
if self._excinfo is None:
return self._result
else:
ex = self._excinfo
raise ex[1].with_traceback(ex[2])
/usr/lib/python3.8/site-packages/pluggy/_result.py:60:
hook_name = 'pytest_runtest_call'
hook_impls = [<HookImpl plugin_name='runner', plugin=<module '_pytest.runner' from '/usr/lib/python3.8/site-packages/_pytest/runner...in=<module '_pytest.unraisableexception' from '/usr/lib/python3.8/site-packages/_pytest/unraisableexception.py'>>, ...]
caller_kwargs = {'item': }, firstresult = False
def _multicall(hook_name, hook_impls, caller_kwargs, firstresult):
"""Execute a call into multiple python functions/methods and return the
result(s).
``caller_kwargs`` comes from _HookCaller.__call__().
"""
__tracebackhide__ = True
results = []
excinfo = None
try: # run impl and wrapper setup functions in a loop
teardowns = []
try:
for hook_impl in reversed(hook_impls):
try:
args = [caller_kwargs[argname] for argname in hook_impl.argnames]
except KeyError:
for argname in hook_impl.argnames:
if argname not in caller_kwargs:
raise HookCallError(
f"hook call must provide argument {argname!r}"
)
if hook_impl.hookwrapper:
try:
gen = hook_impl.function(*args)
next(gen) # first yield
teardowns.append(gen)
except StopIteration:
_raise_wrapfail(gen, "did not yield")
else:
res = hook_impl.function(*args)
/usr/lib/python3.8/site-packages/pluggy/_callers.py:39:
item =
def pytest_runtest_call(item: Item) -> None:
_update_current_test_var(item, "call")
try:
del sys.last_type
del sys.last_value
del sys.last_traceback
except AttributeError:
pass
try:
item.runtest()
except Exception as e:
# Store trace info to allow postmortem debugging
sys.last_type = type(e)
sys.last_value = e
assert e.__traceback__ is not None
# Skip *this* frame
sys.last_traceback = e.__traceback__.tb_next
raise e
/usr/lib/python3.8/site-packages/_pytest/runner.py:174:
item =
def pytest_runtest_call(item: Item) -> None:
_update_current_test_var(item, "call")
try:
del sys.last_type
del sys.last_value
del sys.last_traceback
except AttributeError:
pass
try:
item.runtest()
/usr/lib/python3.8/site-packages/_pytest/runner.py:166:
self =
def runtest(self):
desc = self.get_long_description()
method_name = f"run_{re.sub('[-/]', '_', desc.content_type)}"
getattr(self, method_name)(desc)
E AttributeError: 'CheckdocsItem' object has no attribute 'run_text_x_rst; charset=UTF_8'
/usr/lib/python3.8/site-packages/pytest_checkdocs/init.py:42: AttributeError
TOTAL 1517 45 645 34 96%
========================================================================= short test summary info ==========================================================================
ERROR tests/test_examples.py::test_examples_api[tests/examples/django/setup.cfg-tests/examples/django/pyproject.toml] - FileNotFoundError: [Errno 2] No such file or dire...
ERROR tests/test_examples.py::test_examples_api[tests/examples/flask/setup.cfg-tests/examples/flask/pyproject.toml] - FileNotFoundError: [Errno 2] No such file or direct...
ERROR tests/test_examples.py::test_examples_api[tests/examples/pandas/setup.cfg-tests/examples/pandas/pyproject.toml] - FileNotFoundError: [Errno 2] No such file or dire...
ERROR tests/test_examples.py::test_examples_api[tests/examples/pluggy/setup.cfg-tests/examples/pluggy/pyproject.toml] - FileNotFoundError: [Errno 2] No such file or dire...
ERROR tests/test_examples.py::test_examples_api[tests/examples/plumbum/setup.cfg-tests/examples/plumbum/pyproject.toml] - FileNotFoundError: [Errno 2] No such file or di...
ERROR tests/test_examples.py::test_examples_api[tests/examples/pyscaffold/setup.cfg-tests/examples/pyscaffold/pyproject.toml] - FileNotFoundError: [Errno 2] No such file...
ERROR tests/test_examples.py::test_examples_api[tests/examples/setuptools_docs/setup.cfg-tests/examples/setuptools_docs/pyproject.toml] - FileNotFoundError: [Errno 2] No...
ERROR tests/test_examples.py::test_examples_api[tests/examples/setuptools_scm/setup.cfg-tests/examples/setuptools_scm/pyproject.toml] - FileNotFoundError: [Errno 2] No s...
ERROR tests/test_examples.py::test_examples_api[tests/examples/virtualenv/setup.cfg-tests/examples/virtualenv/pyproject.toml] - FileNotFoundError: [Errno 2] No such file...
ERROR tests/test_examples.py::test_examples_api[tests/examples/zipp/setup.cfg-tests/examples/zipp/pyproject.toml] - FileNotFoundError: [Errno 2] No such file or director...
ERROR tests/test_examples.py::test_examples_api_lite[tests/examples/django/setup.cfg-tests/examples/django/pyproject.toml] - FileNotFoundError: [Errno 2] No such file or...
ERROR tests/test_examples.py::test_examples_api_lite[tests/examples/flask/setup.cfg-tests/examples/flask/pyproject.toml] - FileNotFoundError: [Errno 2] No such file or d...
ERROR tests/test_examples.py::test_examples_api_lite[tests/examples/pandas/setup.cfg-tests/examples/pandas/pyproject.toml] - FileNotFoundError: [Errno 2] No such file or...
ERROR tests/test_examples.py::test_examples_api_lite[tests/examples/pluggy/setup.cfg-tests/examples/pluggy/pyproject.toml] - FileNotFoundError: [Errno 2] No such file or...
ERROR tests/test_examples.py::test_examples_api_lite[tests/examples/plumbum/setup.cfg-tests/examples/plumbum/pyproject.toml] - FileNotFoundError: [Errno 2] No such file ...
ERROR tests/test_examples.py::test_examples_api_lite[tests/examples/pyscaffold/setup.cfg-tests/examples/pyscaffold/pyproject.toml] - FileNotFoundError: [Errno 2] No such...
ERROR tests/test_examples.py::test_examples_api_lite[tests/examples/setuptools_docs/setup.cfg-tests/examples/setuptools_docs/pyproject.toml] - FileNotFoundError: [Errno ...
ERROR tests/test_examples.py::test_examples_api_lite[tests/examples/setuptools_scm/setup.cfg-tests/examples/setuptools_scm/pyproject.toml] - FileNotFoundError: [Errno 2]...
ERROR tests/test_examples.py::test_examples_api_lite[tests/examples/virtualenv/setup.cfg-tests/examples/virtualenv/pyproject.toml] - FileNotFoundError: [Errno 2] No such...
ERROR tests/test_examples.py::test_examples_api_lite[tests/examples/zipp/setup.cfg-tests/examples/zipp/pyproject.toml] - FileNotFoundError: [Errno 2] No such file or dir...
FAILED tests/test_cli.py::test_auto_formatting - SystemExit: 2
FAILED ::project - AttributeError: 'CheckdocsItem' object has no attribute 'run_text_x_rst; charset=UTF_8'
================================================================= 2 failed, 65 passed, 20 errors in 14.29s =================================================================
</details>
This list is outdated:
Lines 15 to 25 in 76bbe11
I don't know if the best is to add everything from the errors
and types
module here, or explicitly say in the docs that everything exposed in the api
+ errors
+ types
module is part of the public API...
โฆ instead of just one of the two. This results in keywords with a trailing comma in the converted file.
I think we can safely rstrip
commas in the transformation...
Some packages have setup.cfg
with explicit [options] packages = ...
but unused [options.packages.find]
.
In general, setup.cfg
should either list packages explicitly or use find
,
but sometimes configs change and options.packages.find
is left behind.
This can be seen for example in aiohttp
:
# ...
[options]
packages = aiohttp
# ...
[options.packages.find]
exclude =
examples
# ...
Currently ini2toml
will fail to convert https://github.com/aio-libs/aiohttp/blob/v3.9.5/setup.cfg:
cd /tmp
wget https://github.com/aio-libs/aiohttp/raw/v3.9.5/setup.cfg
pipx run 'ini2toml[lite]==0.13' setup.cfg
# [ERROR] ValueError: Value for `packages` expected to be Mapping, found ['aiohttp']
A possible solution is for ini2toml
to remove [options.packages.find]
and warn about it.
draft @ cat setup.cfg
[options]
keywords = foo bar baz
draft @ pip-run 'ini2toml[lite]' -- -m ini2toml setup.cfg
[build-system]
requires = [
"setuptools>=61.2",
]
build-backend = "setuptools.build_meta"
[project]
dynamic = [
"version",
]
[tool.setuptools]
keywords = "foo bar baz"
include-package-data = false
So that's mostly good, but tool.setuptools.keywords
is incorrect and attempting to use it will result in an error. Instead, I think the right syntax is:
[project]
keywords = [
"foo",
"bar",
"baz",
]
It seems that pyproject-fmt-2
changed API:
$ python3.12 -c 'from pyproject_fmt import Config, format_pyproject'
Traceback (most recent call last):
File "<string>", line 1, in <module>
ImportError: cannot import name 'Config' from 'pyproject_fmt' (/usr/lib/python3.12/site-packages/pyproject_fmt/__init__.py)
As a result, ini2toml -F fails
with:
$ ini2toml -F pyproject.toml
usage: ini2toml [-h] [-V] [-o OUTPUT_FILE] [-p PROFILE] [-D TRANSFORMATION [TRANSFORMATION ...]] [-v] [-vv] input_file
ini2toml: error: unrecognized arguments: -F
By the way, could you consider making the option return a clear error instead of not adding it entirely? This is a bit confusing.
flake8 doesn't support pyproject.toml yet - see PyCQA/flake8#234
Not sure if it fits with the project, but it'd be great to be able to generate either a minimal setup.cfg with things that can't be migrate or to e.g. populate a .flake8 or tox.ini file with the flake8 settings. Or if those aren't an option, warn the user that part of their config won't be effective.
First -- thank you for all your work around pyproject.toml
and setuptools
, and for this conversion helper -- very much appreciated!!
I'm using ini2toml
0.10 and Python 3.9.11. The following piece of my setup.cfg
[options.package_data]
* = ['extension/jupyter_tempvars.*']
is being converted to
[tool.setuptools.package-data]
"*" = [ "['extension/jupyter_tempvars.*']",]
I'm pretty sure it should just be
"*" = ['extension/jupyter_tempvars.*',]
This was the only array value in the entire setup.cfg
, so I don't have any other array values to compare to. Is this parse case just not implemented yet?
ini2toml/src/ini2toml/translator.py
Lines 36 to 37 in 76bbe11
It is important to mention their relationship with drivers (and how they can be used to force specific ones).
I love this tool because it greatly simplifies the migration into pyproject.toml
. One problem that remains in these conversions is migrating the metadata from setup.py
files. Is there some tool that would migrate setup.py
metadatainto
setup.cfgthat could act as a preprocess before doing an ini2toml migration? The goal of these PEPs is to have a minimal or preferably no
setup.py` file so migrating this metadata is key.
setuptools supports file:
directives for reading requirements see https://setuptools.pypa.io/en/latest/userguide/declarative_config.html#opt-6
According to the discussion in PyPA, it would be nice to enforce certain dicts are persisted as multi-line tables (instead of inline), for example for entry-points.
Others (like URL) might be better off as dotted
keys.
e.g. 'importlib-metadata>=0.12;python_version<"3.8"'
instead of "importlib-metadata>=0.12;python_version<"3.8"".
With new pyproject-fmt
(0.4.0) test_auto_formatting
fails:
________________________________ test_auto_formatting ________________________________
tmp_path = PosixPath('/usr/src/tmp/pytest-of-builder/pytest-2/test_auto_formatting0')
capsys = <_pytest.capture.CaptureFixture object at 0x7ff8d4065180>
@pytest.mark.skipif(
sys.version_info < (3, 7),
reason="pyproject-fmt is only available on Python 3.7+",
)
def test_auto_formatting(tmp_path, capsys):
setupcfg = """
[metadata]
version = 42
name = myproj
"""
normal_output = """
requires = ["setuptools>=61.2"]
"""
expected = """
requires = [
"setuptools>=61.2",
]
"""
# Check if the underlying function works
formatted = cli.apply_auto_formatting(cleandoc(expected))
assert formatted.strip() == cleandoc(expected).strip()
(tmp_path / "setup.cfg").write_text(cleandoc(setupcfg), encoding="utf-8")
assert (tmp_path / "setup.cfg").exists()
# Check the output when formatting in off
cli.run([str(tmp_path / "setup.cfg")])
out, _ = capsys.readouterr()
assert cleandoc(normal_output) in out
assert cleandoc(expected) not in out
# Check the output when formatting in on
breakpoint()
cli.run(["-F", str(tmp_path / "setup.cfg")])
out, _ = capsys.readouterr()
assert cleandoc(normal_output) not in out
> assert cleandoc(expected) in out
E assert 'requires = [\n "setuptools>=61.2",\n]' in ''
E + where 'requires = [\n "setuptools>=61.2",\n]' = cleandoc('\n requires = [\n "setuptools>=61.2",\n ]\n ')
tests/test_cli.py:145: AssertionError
--------------------------------- Captured log call ----------------------------------
WARNING ini2toml:cli.py:101 Auto-formatting failed, falling back to original text
WARNING ini2toml:cli.py:101 Auto-formatting failed, falling back to original text
============================== short test summary info ===============================
FAILED tests/test_cli.py::test_auto_formatting - assert 'requires = [\n "setuptools>=61.2",\n]' in ''
(py3) [builder@localhost python3-module-ini2toml-0.11.1]$ ini2toml -vv -F /usr/src/tmp/pytest-of-builder/pytest-3/test_auto_formatting0/setup.cfg
[DEBUG] pyproject-fmt failed: Config.__init__() missing 1 required positional argument: 'toml'
Traceback (most recent call last):
File "/usr/src/RPM/BUILD/python3-module-ini2toml-0.11.1/.tox/py3/lib/python3/site-packages/ini2toml/cli.py", line 98, in apply_auto_formatting
return format_pyproject(Config(text))
TypeError: Config.__init__() missing 1 required positional argument: 'toml'
[WARNING] Auto-formatting failed, falling back to original text
[build-system]
requires = ["setuptools>=61.2"]
build-backend = "setuptools.build_meta"
[project]
version = "42"
name = "myproj"
[tool.setuptools]
include-package-data = false
This is caused by tox-dev/pyproject-fmt@c690ab2 (added pyproject_toml: Path
field to Config
).
As recommended in the PyPA discord:
build-system
should come first, followed by project
and then by tool
.
input:
[pytest]
filterwarnings=
error
ignore:Please use `dok_matrix` from the `scipy\.sparse` namespace, the `scipy\.sparse\.dok` namespace is deprecated.:DeprecationWarning
output:
[build-system]
requires = ["setuptools>=61.2"]
build-backend = "setuptools.build_meta"
[project]
dynamic = ["version"]
[tool.pytest.ini_options]
filterwarnings = [
"error",
"ignore:Please", "use", "`dok_matrix`", "from", "the", '`scipy\.sparse`', "namespace,", "the", '`scipy\.sparse\.dok`', "namespace", "is", "deprecated.:DeprecationWarning",
]
[tool.setuptools]
include-package-data = false
expected:
[build-system]
requires = ["setuptools>=61.2"]
build-backend = "setuptools.build_meta"
[project]
dynamic = ["version"]
[tool.pytest.ini_options]
filterwarnings = [
"error",
"""ignore:Please use `dok_matrix` from the `scipy\.sparse` namespace, the `scipy\.sparse\.dok` namespace is deprecated.:DeprecationWarning""",
]
[tool.setuptools]
include-package-data = false
First, thanks for this really useful tool!
I found a potential bug in pyproject-fmt where it misplaces a [project.readme]
section in pyproject.toml
leading to an error.
It looks like pyproject-fmt wasn't expecting a [project.readme]
, and rather expected a readme =
under [project]
, which it handles fine.
And the pyproject.toml
was generated by ini2toml from a setup.cfg
using -p setup.cfg
, perhaps it could create the simpler readme =
instead?
Feel free to close this if it's not a good idea!
setup.cfg
to pyproject.toml
Start with a minimal-ish setup.cfg
with a Markdown README:
[metadata]
name = my-name
description = my-description
long_description = file: README.md
long_description_content_type = text/markdown
url = https://github.com/my/project
author = my-author
license = MIT
[options]
packages = find:
python_requires = >=3.7
package_dir = =src
[options.packages.find]
where = src
Convert to pyproject.toml
and validate:
$ ini2toml setup.cfg -p setup.cfg -o pyproject.toml; validate-pyproject pyproject.toml
Valid file: pyproject.toml
Creates this pyproject.toml
:
[build-system]
requires = ["setuptools>=61.2"]
build-backend = "setuptools.build_meta"
[project]
name = "my-name"
description = "my-description"
authors = [{name = "my-author"}]
license = {text = "MIT"}
urls = {Homepage = "https://github.com/my/project"}
requires-python = ">=3.7"
dynamic = ["version"]
[project.readme]
file = "README.md"
content-type = "text/markdown"
[tool.setuptools]
package-dir = {"" = "src"}
include-package-data = false
[tool.setuptools.packages.find]
where = ["src"]
namespaces = false
Note the README is in its own section:
[project.readme]
file = "README.md"
content-type = "text/markdown"
Running:
$ pyproject-fmt pyproject.toml > /dev/null; validate-pyproject pyproject.toml
Invalid file: pyproject.toml
[ERROR] `project` must contain ['version'] properties
Changes the pyproject.toml
like this:
--- pyproject.toml
+++ pyproject.toml
@@ -1,19 +1,23 @@
[build-system]
-requires = ["setuptools>=61.2"]
build-backend = "setuptools.build_meta"
+requires = [
+ "setuptools>=61.2",
+]
[project]
-name = "my-name"
+name = "my_name"
description = "my-description"
-authors = [{name = "my-author"}]
-license = {text = "MIT"}
-urls = {Homepage = "https://github.com/my/project"}
-requires-python = ">=3.7"
-dynamic = ["version"]
-
[project.readme]
file = "README.md"
content-type = "text/markdown"
+
+license = {text = "MIT"}
+authors = [{name = "my-author"}]
+requires-python = ">=3.7"
+dynamic = [
+ "version",
+]
+urls = {Homepage = "https://github.com/my/project"}
[tool.setuptools]
package-dir = {"" = "src"}
To this pyproject.toml
:
[build-system]
build-backend = "setuptools.build_meta"
requires = [
"setuptools>=61.2",
]
[project]
name = "my_name"
description = "my-description"
[project.readme]
file = "README.md"
content-type = "text/markdown"
license = {text = "MIT"}
authors = [{name = "my-author"}]
requires-python = ">=3.7"
dynamic = [
"version",
]
urls = {Homepage = "https://github.com/my/project"}
[tool.setuptools]
package-dir = {"" = "src"}
include-package-data = false
[tool.setuptools.packages.find]
where = ["src"]
namespaces = false
Note that pyproject-fmt inserts [project.readme]
right in the middle of the [project]
section:
[project]
name = "my_name"
description = "my-description"
[project.readme]
file = "README.md"
content-type = "text/markdown"
license = {text = "MIT"}
...
setup.cfg
to pyproject.toml
and editThis is likely a pyproject-fmt bug, but if we re-generate pyproject.toml
:
$ ini2toml setup.cfg -p setup.cfg -o pyproject.toml; validate-pyproject pyproject.toml
Valid file: pyproject.toml
But manually edit the generated pyproject.toml
and simplify the readme config:
[project]
name = "my-name"
description = "my-description"
+readme = "README.md"
authors = [{name = "my-author"}]
license = {text = "MIT"}
urls = {Homepage = "https://github.com/my/project"}
requires-python = ">=3.7"
dynamic = ["version"]
-[project.readme]
-file = "README.md"
-content-type = "text/markdown"
-
[tool.setuptools]
package-dir = {"" = "src"}
include-package-data = false
(Like pyproject-fmt itself does: https://github.com/tox-dev/pyproject-fmt/blob/e4e90cfa5f3731697673b34067796bbe7c9a8e07/pyproject.toml#L8)
This time pyproject-fmt doesn't break the file:
$ pyproject-fmt pyproject.toml > /dev/null; validate-pyproject pyproject.toml
Valid file: pyproject.toml
And makes valid edits:
diff --git a/pyproject.toml b/pyproject.toml
index 3188688..2f57876 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -1,19 +1,20 @@
[build-system]
-requires = ["setuptools>=61.2"]
build-backend = "setuptools.build_meta"
+requires = [
+ "setuptools>=61.2",
+]
[project]
-name = "my-name"
+name = "my_name"
description = "my-description"
-authors = [{name = "my-author"}]
+readme = "README.md"
license = {text = "MIT"}
-urls = {Homepage = "https://github.com/my/project"}
+authors = [{name = "my-author"}]
requires-python = ">=3.7"
-dynamic = ["version"]
-
-[project.readme]
-file = "README.md"
-content-type = "text/markdown"
+dynamic = [
+ "version",
+]
+urls = {Homepage = "https://github.com/my/project"}
[tool.setuptools]
package-dir = {"" = "src"}
Given:
[options]
packages = find:
[options.packages.find]
where=src
include=mypackage*
exclude=mypackage.tests*
Like at https://setuptools.pypa.io/en/latest/userguide/quickstart.html#package-discovery
Errors with:
[ERROR] ValueError: Value for `packages` expected to be a table, found 'find:'
Currently, if the value of the option contains comments in multiple lines the conversion will result in an invalid config.
Probably an alternative is to split the lines and then split each line using shlex.split
As per pytest-dev/pytest#12228, the pytest maintainers recommend addopts to be a string, so we should probably strip the comments.
ini2toml/src/ini2toml/types.py
Line 97 in 76bbe11
I'm testing ini2toml 0.15
in an environment with pyproject-fmt 2.0.3
installed and I see the following test to fail:
_____________________________ test_auto_formatting _____________________________
tmp_path = PosixPath('/tmp/pytest-of-marcel/pytest-15/test_auto_formatting0')
capsys = <_pytest.capture.CaptureFixture object at 0x7fffac3c30d0>
@pytest.mark.skipif(
sys.version_info < (3, 7),
reason="pyproject-fmt is only available on Python 3.7+",
)
def test_auto_formatting(tmp_path, capsys):
setupcfg = """
[metadata]
version = 42
name = myproj
"""
normal_output = """
requires = ["setuptools>=61.2"]
"""
expected = """
requires = [
"setuptools>=61.2",
]
"""
# Check if the underlying function works
formatted = cli.apply_auto_formatting(cleandoc(expected))
assert formatted.strip() == cleandoc(expected).strip()
(tmp_path / "setup.cfg").write_text(cleandoc(setupcfg), encoding="utf-8")
assert (tmp_path / "setup.cfg").exists()
# Check the output when formatting in off
cli.run([str(tmp_path / "setup.cfg")])
out, _ = capsys.readouterr()
assert cleandoc(normal_output) in out
assert cleandoc(expected) not in out
# Check the output when formatting in on
cli.run(["-F", str(tmp_path / "setup.cfg")])
out, _ = capsys.readouterr()
> assert cleandoc(normal_output) not in out
E assert 'requires = ["setuptools>=61.2"]' not in '[build-system]\nrequires = ["setuptools>=61.2"]\nbuild-backend = "setuptools.build_meta"\n\n[project]\nversion = "42"\nname = "myproj"\n\n[tool.setuptools]\ninclude-package-data = false\n'
E
E 'requires = ["setuptools>=61.2"]' is contained here:
E [build-system]
E requires = ["setuptools>=61.2"]
E build-backend = "setuptools.build_meta"
E
E [project]
E version = "42"
E name = "myproj"
E
E [tool.setuptools]
E include-package-data = false
tests/test_cli.py:161: AssertionError
------------------------------ Captured log call -------------------------------
WARNING ini2toml:cli.py:103 Auto-formatting failed, falling back to original text
WARNING ini2toml:cli.py:103 Auto-formatting failed, falling back to original text
According to the thread in discourse license-files
is not meant to be mapped into PEP 621's project.license.file
ini2toml/src/ini2toml/drivers/full_toml.py
Lines 163 to 168 in 76bbe11
With recent tomlkit 0.11.6 ini2toml
tests fail:
...
__________________________________ test_data_files ___________________________________
translator = <ini2toml.translator.Translator object at 0x7fcdedea8e80>
def test_data_files(translator):
# Same thing but with the higher level API:
with pytest.warns(DeprecationWarning, match="'data-files' is deprecated"):
text = translator.translate(example_data_files, profile_name="setup.cfg")
> assert text.strip() == expected_data_files.strip()
E assert '[build-system]\nrequires = ["setuptools>=61.2"]\nbuild-backend = "setuptools.build_meta"\n\n[project]\ndynamic = ["version"]\n\n[tool.setuptools]\ndata-files = {a = ["b"]}\ninclude-package-data = false' == '[build-system]\nrequires = ["setuptools>=61.2"]\nbuild-backend = "setuptools.build_meta"\n\n[project]\ndynamic = ["version"]\n\n[tool]\n[tool.setuptools]\ndata-files = {a = ["b"]}\ninclude-package-data = false'
E [build-system]
E requires = ["setuptools>=61.2"]
E build-backend = "setuptools.build_meta"
E
E [project]
E dynamic = ["version"]
E
E - [tool]
E [tool.setuptools]
E data-files = {a = ["b"]}
E include-package-data = false
tests/plugins/test_setuptools_pep621.py:659: AssertionError
...
============================== short test summary info ===============================
FAILED tests/drivers/test_full_toml.py::test_convert - assert '[section1]\n# comment\nvalue = 42 # int value\n\n[section2]\nfloat-value ...
FAILED tests/plugins/test_setuptools_pep621.py::test_split_subtables - assert '[tool.setuptools.packages.find]\nwhere = "src"\n\n[project]\n[project.ent...
FAILED tests/plugins/test_setuptools_pep621.py::test_entrypoints_and_split_subtables - assert '[tool.setuptools.packages.find]\nwhere = "src"\n\n[project]\n[project.ent...
FAILED tests/plugins/test_setuptools_pep621.py::test_empty - assert '[build-system]\nrequires = ["setuptools>=61.2"]\nbuild-backend = "setupto...
FAILED tests/plugins/test_setuptools_pep621.py::test_data_files - assert '[build-system]\nrequires = ["setuptools>=61.2"]\nbuild-backend = "setupto...
============================ 5 failed, 81 passed in 5.75s ============================
With python-poetry/tomlkit#246 default value for is_super_table
was changed from False
to autodetect.
Now that the lead developer of atoml
is also a maintainer of tomlkit
, most of the fixes for bugs and improvements in atoml
should have already be back ported to tomlkit
.
So it makes sense to use again tomlkit
.
Looks like latest sphins shows a lot of warnings
+ /usr/bin/sphinx-build -n -T -b man docs build/sphinx/man
Running Sphinx v4.5.0
Creating file /home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/api/ini2toml.rst.
Creating file /home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/api/ini2toml.drivers.rst.
Creating file /home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/api/ini2toml.plugins.rst.
Creating file /home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/api/modules.rst.
loading configurations for ini2toml 0.10 ...
making output directory... done
loading intersphinx inventory from https://www.sphinx-doc.org/en/master/objects.inv...
loading intersphinx inventory from https://docs.python.org/3.8/objects.inv...
loading intersphinx inventory from https://matplotlib.org/objects.inv...
loading intersphinx inventory from https://numpy.org/doc/stable/objects.inv...
loading intersphinx inventory from https://scikit-learn.org/stable/objects.inv...
loading intersphinx inventory from https://pandas.pydata.org/pandas-docs/stable/objects.inv...
loading intersphinx inventory from https://docs.scipy.org/doc/scipy/reference/objects.inv...
loading intersphinx inventory from https://setuptools.pypa.io/en/stable/objects.inv...
loading intersphinx inventory from https://pyscaffold.org/en/stable/objects.inv...
intersphinx inventory has moved: https://matplotlib.org/objects.inv -> https://matplotlib.org/stable/objects.inv
intersphinx inventory has moved: https://docs.scipy.org/doc/scipy/reference/objects.inv -> https://docs.scipy.org/doc/scipy/objects.inv
[autosummary] generating autosummary for: api/ini2toml.drivers.rst, api/ini2toml.plugins.rst, api/ini2toml.rst, api/modules.rst, authors.rst, changelog.rst, contributing.rst, dev-guide.rst, index.rst, license.rst, readme.rst, setuptools_pep621.rst
building [mo]: targets for 0 po files that are out of date
building [man]: all manpages
updating environment: [new config] 12 added, 0 changed, 0 removed
reading sources... [100%] setuptools_pep621
CONTRIBUTING.rst:243: CRITICAL: Title level inconsistent:
Releases
--------
looking for now-outdated files... none found
pickling environment... done
checking consistency... done
writing... python-ini2toml.3 { readme setuptools_pep621 contributing dev-guide license authors changelog api/modules api/ini2toml api/ini2toml.drivers api/ini2toml.plugins } /home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/dev-guide.rst:227: WARNING: py:meth reference target not found: ini2toml.translator.Translator.augment_profiles
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/dev-guide.rst:259: WARNING: py:meth reference target not found: ini2toml.translator.Translator.augment_profiles
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/drivers/configupdater.py:docstring of ini2toml.drivers.configupdater.translate_comment:: WARNING: py:class reference target not found: configupdater.block.Comment
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/drivers/configupdater.py:docstring of ini2toml.drivers.configupdater.translate_option:: WARNING: py:class reference target not found: configupdater.option.Option
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/drivers/configupdater.py:docstring of ini2toml.drivers.configupdater.translate_section:: WARNING: py:class reference target not found: configupdater.section.Section
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/drivers/configupdater.py:docstring of ini2toml.drivers.configupdater.translate_space:: WARNING: py:class reference target not found: configupdater.block.Space
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/drivers/full_toml.py:docstring of tomlkit.api.loads:: WARNING: py:class reference target not found: tomlkit.toml_document.TOMLDocument
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/plugins/best_effort.py:docstring of ini2toml.plugins.best_effort.BestEffort.apply_best_effort:: WARNING: py:class reference target not found: ini2toml.plugins.best_effort.M
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/plugins/best_effort.py:docstring of ini2toml.plugins.best_effort.BestEffort.apply_best_effort_to_section:: WARNING: py:class reference target not found: ini2toml.plugins.best_effort.M
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/plugins/best_effort.py:docstring of ini2toml.plugins.best_effort.BestEffort.apply_best_effort_to_section:: WARNING: py:class reference target not found: ini2toml.plugins.best_effort.M
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/plugins/best_effort.py:docstring of ini2toml.plugins.best_effort.BestEffort.process_values:: WARNING: py:class reference target not found: ini2toml.plugins.best_effort.M
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/plugins/best_effort.py:docstring of ini2toml.plugins.best_effort.BestEffort.process_values:: WARNING: py:class reference target not found: ini2toml.plugins.best_effort.M
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/plugins/coverage.py:docstring of ini2toml.plugins.coverage.Coverage.process_section:: WARNING: py:class reference target not found: ini2toml.plugins.coverage.M
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/plugins/coverage.py:docstring of ini2toml.plugins.coverage.Coverage.process_values:: WARNING: py:class reference target not found: ini2toml.plugins.coverage.M
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/plugins/coverage.py:docstring of ini2toml.plugins.coverage.Coverage.process_values:: WARNING: py:class reference target not found: ini2toml.plugins.coverage.M
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/plugins/isort.py:docstring of ini2toml.plugins.isort.ISort.process_section:: WARNING: py:class reference target not found: ini2toml.plugins.isort.M
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/plugins/isort.py:docstring of ini2toml.plugins.isort.ISort.process_values:: WARNING: py:class reference target not found: ini2toml.plugins.isort.M
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/plugins/isort.py:docstring of ini2toml.plugins.isort.ISort.process_values:: WARNING: py:class reference target not found: ini2toml.plugins.isort.M
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/plugins/mypy.py:docstring of ini2toml.plugins.mypy.Mypy.add_overrided_modules:: WARNING: py:class reference target not found: ini2toml.plugins.mypy.R
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/plugins/mypy.py:docstring of ini2toml.plugins.mypy.Mypy.process_options:: WARNING: py:class reference target not found: ini2toml.plugins.mypy.M
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/plugins/mypy.py:docstring of ini2toml.plugins.mypy.Mypy.process_options:: WARNING: py:class reference target not found: ini2toml.plugins.mypy.M
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/plugins/mypy.py:docstring of ini2toml.plugins.mypy.Mypy.process_overrides:: WARNING: py:class reference target not found: ini2toml.plugins.mypy.R
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/plugins/mypy.py:docstring of ini2toml.plugins.mypy.Mypy.process_overrides:: WARNING: py:class reference target not found: ini2toml.plugins.mypy.R
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/plugins/mypy.py:docstring of ini2toml.plugins.mypy.Mypy.process_values:: WARNING: py:class reference target not found: ini2toml.plugins.mypy.M
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/plugins/mypy.py:docstring of ini2toml.plugins.mypy.Mypy.process_values:: WARNING: py:class reference target not found: ini2toml.plugins.mypy.M
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/plugins/pytest.py:docstring of ini2toml.plugins.pytest.Pytest.process_values:: WARNING: py:class reference target not found: ini2toml.plugins.pytest.R
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/plugins/pytest.py:docstring of ini2toml.plugins.pytest.Pytest.process_values:: WARNING: py:class reference target not found: ini2toml.plugins.pytest.R
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/plugins/setuptools_pep621.py:docstring of ini2toml.plugins.setuptools_pep621.SetuptoolsPEP621.apply_value_processing:: WARNING: py:class reference target not found: ini2toml.plugins.setuptools_pep621.R
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/plugins/setuptools_pep621.py:docstring of ini2toml.plugins.setuptools_pep621.SetuptoolsPEP621.apply_value_processing:: WARNING: py:class reference target not found: ini2toml.plugins.setuptools_pep621.R
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/plugins/setuptools_pep621.py:docstring of ini2toml.plugins.setuptools_pep621.SetuptoolsPEP621.dependent_processing_rules:: WARNING: py:class reference target not found: ini2toml.types.M
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/plugins/setuptools_pep621.py:docstring of ini2toml.plugins.setuptools_pep621.SetuptoolsPEP621.dependent_processing_rules:: WARNING: py:class reference target not found: ini2toml.types.M
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/plugins/setuptools_pep621.py:docstring of ini2toml.plugins.setuptools_pep621.SetuptoolsPEP621.ensure_pep518:: WARNING: py:class reference target not found: ini2toml.plugins.setuptools_pep621.R
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/plugins/setuptools_pep621.py:docstring of ini2toml.plugins.setuptools_pep621.SetuptoolsPEP621.ensure_pep518:: WARNING: py:class reference target not found: ini2toml.plugins.setuptools_pep621.R
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/plugins/setuptools_pep621.py:docstring of ini2toml.plugins.setuptools_pep621.SetuptoolsPEP621.fix_extras_require:: WARNING: py:class reference target not found: ini2toml.plugins.setuptools_pep621.R
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/plugins/setuptools_pep621.py:docstring of ini2toml.plugins.setuptools_pep621.SetuptoolsPEP621.fix_extras_require:: WARNING: py:class reference target not found: ini2toml.plugins.setuptools_pep621.R
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/plugins/setuptools_pep621.py:docstring of ini2toml.plugins.setuptools_pep621.SetuptoolsPEP621.handle_dynamic:: WARNING: py:class reference target not found: ini2toml.plugins.setuptools_pep621.R
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/plugins/setuptools_pep621.py:docstring of ini2toml.plugins.setuptools_pep621.SetuptoolsPEP621.handle_dynamic:: WARNING: py:class reference target not found: ini2toml.plugins.setuptools_pep621.R
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/plugins/setuptools_pep621.py:docstring of ini2toml.plugins.setuptools_pep621.SetuptoolsPEP621.handle_license:: WARNING: py:class reference target not found: ini2toml.plugins.setuptools_pep621.R
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/plugins/setuptools_pep621.py:docstring of ini2toml.plugins.setuptools_pep621.SetuptoolsPEP621.handle_license:: WARNING: py:class reference target not found: ini2toml.plugins.setuptools_pep621.R
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/plugins/setuptools_pep621.py:docstring of ini2toml.plugins.setuptools_pep621.SetuptoolsPEP621.handle_packages_find:: WARNING: py:class reference target not found: ini2toml.plugins.setuptools_pep621.R
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/plugins/setuptools_pep621.py:docstring of ini2toml.plugins.setuptools_pep621.SetuptoolsPEP621.handle_packages_find:: WARNING: py:class reference target not found: ini2toml.plugins.setuptools_pep621.R
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/plugins/setuptools_pep621.py:docstring of ini2toml.plugins.setuptools_pep621.SetuptoolsPEP621.make_include_package_data_explicit:: WARNING: py:class reference target not found: ini2toml.plugins.setuptools_pep621.R
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/plugins/setuptools_pep621.py:docstring of ini2toml.plugins.setuptools_pep621.SetuptoolsPEP621.make_include_package_data_explicit:: WARNING: py:class reference target not found: ini2toml.plugins.setuptools_pep621.R
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/plugins/setuptools_pep621.py:docstring of ini2toml.plugins.setuptools_pep621.SetuptoolsPEP621.merge_and_rename_long_description_and_content_type:: WARNING: py:class reference target not found: ini2toml.plugins.setuptools_pep621.R
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/plugins/setuptools_pep621.py:docstring of ini2toml.plugins.setuptools_pep621.SetuptoolsPEP621.merge_and_rename_long_description_and_content_type:: WARNING: py:class reference target not found: ini2toml.plugins.setuptools_pep621.R
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/plugins/setuptools_pep621.py:docstring of ini2toml.plugins.setuptools_pep621.SetuptoolsPEP621.merge_and_rename_urls:: WARNING: py:class reference target not found: ini2toml.plugins.setuptools_pep621.R
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/plugins/setuptools_pep621.py:docstring of ini2toml.plugins.setuptools_pep621.SetuptoolsPEP621.merge_and_rename_urls:: WARNING: py:class reference target not found: ini2toml.plugins.setuptools_pep621.R
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/plugins/setuptools_pep621.py:docstring of ini2toml.plugins.setuptools_pep621.SetuptoolsPEP621.merge_authors_maintainers_and_emails:: WARNING: py:class reference target not found: ini2toml.plugins.setuptools_pep621.R
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/plugins/setuptools_pep621.py:docstring of ini2toml.plugins.setuptools_pep621.SetuptoolsPEP621.merge_authors_maintainers_and_emails:: WARNING: py:class reference target not found: ini2toml.plugins.setuptools_pep621.R
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/plugins/setuptools_pep621.py:docstring of ini2toml.plugins.setuptools_pep621.SetuptoolsPEP621.move_and_split_entrypoints:: WARNING: py:class reference target not found: ini2toml.plugins.setuptools_pep621.R
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/plugins/setuptools_pep621.py:docstring of ini2toml.plugins.setuptools_pep621.SetuptoolsPEP621.move_and_split_entrypoints:: WARNING: py:class reference target not found: ini2toml.plugins.setuptools_pep621.R
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/plugins/setuptools_pep621.py:docstring of ini2toml.plugins.setuptools_pep621.SetuptoolsPEP621.move_options_missing_in_pep621:: WARNING: py:class reference target not found: ini2toml.plugins.setuptools_pep621.R
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/plugins/setuptools_pep621.py:docstring of ini2toml.plugins.setuptools_pep621.SetuptoolsPEP621.move_options_missing_in_pep621:: WARNING: py:class reference target not found: ini2toml.plugins.setuptools_pep621.R
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/plugins/setuptools_pep621.py:docstring of ini2toml.plugins.setuptools_pep621.SetuptoolsPEP621.move_setup_requires:: WARNING: py:class reference target not found: ini2toml.plugins.setuptools_pep621.R
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/plugins/setuptools_pep621.py:docstring of ini2toml.plugins.setuptools_pep621.SetuptoolsPEP621.move_setup_requires:: WARNING: py:class reference target not found: ini2toml.plugins.setuptools_pep621.R
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/plugins/setuptools_pep621.py:docstring of ini2toml.plugins.setuptools_pep621.SetuptoolsPEP621.move_tests_require:: WARNING: py:class reference target not found: ini2toml.plugins.setuptools_pep621.R
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/plugins/setuptools_pep621.py:docstring of ini2toml.plugins.setuptools_pep621.SetuptoolsPEP621.move_tests_require:: WARNING: py:class reference target not found: ini2toml.plugins.setuptools_pep621.R
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/plugins/setuptools_pep621.py:docstring of ini2toml.plugins.setuptools_pep621.SetuptoolsPEP621.normalise_keys:: WARNING: py:class reference target not found: ini2toml.plugins.setuptools_pep621.R
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/plugins/setuptools_pep621.py:docstring of ini2toml.plugins.setuptools_pep621.SetuptoolsPEP621.normalise_keys:: WARNING: py:class reference target not found: ini2toml.plugins.setuptools_pep621.R
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/plugins/setuptools_pep621.py:docstring of ini2toml.plugins.setuptools_pep621.SetuptoolsPEP621.parse_setup_py_command_options:: WARNING: py:class reference target not found: ini2toml.plugins.setuptools_pep621.R
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/plugins/setuptools_pep621.py:docstring of ini2toml.plugins.setuptools_pep621.SetuptoolsPEP621.parse_setup_py_command_options:: WARNING: py:class reference target not found: ini2toml.plugins.setuptools_pep621.R
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/plugins/setuptools_pep621.py:docstring of ini2toml.plugins.setuptools_pep621.SetuptoolsPEP621.pep621_transform:: WARNING: py:class reference target not found: ini2toml.plugins.setuptools_pep621.R
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/plugins/setuptools_pep621.py:docstring of ini2toml.plugins.setuptools_pep621.SetuptoolsPEP621.pep621_transform:: WARNING: py:class reference target not found: ini2toml.plugins.setuptools_pep621.R
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/plugins/setuptools_pep621.py:docstring of ini2toml.plugins.setuptools_pep621.SetuptoolsPEP621.processing_rules:: WARNING: py:class reference target not found: ini2toml.types.M
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/plugins/setuptools_pep621.py:docstring of ini2toml.plugins.setuptools_pep621.SetuptoolsPEP621.processing_rules:: WARNING: py:class reference target not found: ini2toml.types.M
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/plugins/setuptools_pep621.py:docstring of ini2toml.plugins.setuptools_pep621.SetuptoolsPEP621.remove_metadata_not_in_pep621:: WARNING: py:class reference target not found: ini2toml.plugins.setuptools_pep621.R
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/plugins/setuptools_pep621.py:docstring of ini2toml.plugins.setuptools_pep621.SetuptoolsPEP621.remove_metadata_not_in_pep621:: WARNING: py:class reference target not found: ini2toml.plugins.setuptools_pep621.R
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/plugins/setuptools_pep621.py:docstring of ini2toml.plugins.setuptools_pep621.SetuptoolsPEP621.rename_script_files:: WARNING: py:class reference target not found: ini2toml.plugins.setuptools_pep621.R
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/plugins/setuptools_pep621.py:docstring of ini2toml.plugins.setuptools_pep621.SetuptoolsPEP621.rename_script_files:: WARNING: py:class reference target not found: ini2toml.plugins.setuptools_pep621.R
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/plugins/setuptools_pep621.py:docstring of ini2toml.plugins.setuptools_pep621.SetuptoolsPEP621.split_subtables:: WARNING: py:class reference target not found: ini2toml.plugins.setuptools_pep621.R
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/plugins/setuptools_pep621.py:docstring of ini2toml.plugins.setuptools_pep621.SetuptoolsPEP621.split_subtables:: WARNING: py:class reference target not found: ini2toml.plugins.setuptools_pep621.R
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/plugins/setuptools_pep621.py:docstring of ini2toml.plugins.setuptools_pep621.SetuptoolsPEP621.template:: WARNING: py:class reference target not found: ini2toml.plugins.setuptools_pep621.R
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/plugins/__init__.py:docstring of ini2toml.plugins.ErrorLoadingPlugin:: WARNING: py:class reference target not found: importlib.metadata.EntryPoint
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/plugins/__init__.py:docstring of ini2toml.plugins.iterate_entry_points:: WARNING: py:class reference target not found: importlib.metadata.EntryPoint
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/plugins/__init__.py:docstring of ini2toml.plugins.load_from_entry_point:: WARNING: py:class reference target not found: importlib.metadata.EntryPoint
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/base_translator.py:docstring of ini2toml.base_translator.BaseTranslator:: WARNING: py:class reference target not found: ini2toml.base_translator.T
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/base_translator.py:docstring of ini2toml.base_translator.BaseTranslator:1: WARNING: py:obj reference target not found: ini2toml.base_translator.T
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/base_translator.py:docstring of ini2toml.base_translator.BaseTranslator:35: WARNING: py:mod reference target not found: configparser.ConfigParser
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/base_translator.py:docstring of ini2toml.base_translator.BaseTranslator:35: WARNING: py:mod reference target not found: configupdater.ConfigUpdater
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/base_translator.py:docstring of ini2toml.base_translator.BaseTranslator.dumps:: WARNING: py:class reference target not found: ini2toml.base_translator.T
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/base_translator.py:docstring of ini2toml.base_translator.BaseTranslator.translate:: WARNING: py:class reference target not found: ini2toml.base_translator.T
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/base_translator.py:docstring of ini2toml.base_translator.BaseTranslator:: WARNING: py:class reference target not found: ini2toml.base_translator.T
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/base_translator.py:docstring of ini2toml.base_translator.BaseTranslator:1: WARNING: py:obj reference target not found: ini2toml.base_translator.T
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/base_translator.py:docstring of ini2toml.base_translator.BaseTranslator:35: WARNING: py:mod reference target not found: configparser.ConfigParser
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/base_translator.py:docstring of ini2toml.base_translator.BaseTranslator:35: WARNING: py:mod reference target not found: configupdater.ConfigUpdater
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/base_translator.py:docstring of ini2toml.base_translator.BaseTranslator.dumps:: WARNING: py:class reference target not found: ini2toml.base_translator.T
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/base_translator.py:docstring of ini2toml.base_translator.BaseTranslator.translate:: WARNING: py:class reference target not found: ini2toml.base_translator.T
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/cli.py:docstring of ini2toml.cli.run:1: WARNING: py:obj reference target not found: Translator
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/cli.py:docstring of ini2toml.cli.run:3: WARNING: py:func reference target not found: Translator.translate
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/intermediate_repr.py:docstring of ini2toml.intermediate_repr.Commented:: WARNING: py:class reference target not found: ini2toml.intermediate_repr.T
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/intermediate_repr.py:docstring of ini2toml.intermediate_repr.Commented:1: WARNING: py:obj reference target not found: ini2toml.intermediate_repr.T
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/intermediate_repr.py:docstring of ini2toml.intermediate_repr.Commented.as_commented_list:: WARNING: py:class reference target not found: ini2toml.intermediate_repr.T
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/intermediate_repr.py:docstring of ini2toml.intermediate_repr.Commented.value_or:: WARNING: py:class reference target not found: ini2toml.intermediate_repr.S
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/intermediate_repr.py:docstring of ini2toml.intermediate_repr.Commented.value_or:: WARNING: py:class reference target not found: ini2toml.intermediate_repr.T
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/intermediate_repr.py:docstring of ini2toml.intermediate_repr.Commented.value_or:: WARNING: py:class reference target not found: ini2toml.intermediate_repr.S
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/intermediate_repr.py:docstring of ini2toml.intermediate_repr.CommentedKV:: WARNING: py:class reference target not found: ini2toml.intermediate_repr.T
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/intermediate_repr.py:docstring of ini2toml.intermediate_repr.CommentedKV:1: WARNING: py:obj reference target not found: ini2toml.intermediate_repr.T
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/intermediate_repr.py:docstring of ini2toml.intermediate_repr.CommentedKV.insert_line:: WARNING: py:class reference target not found: ini2toml.intermediate_repr.T
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/intermediate_repr.py:docstring of ini2toml.intermediate_repr.CommentedList:: WARNING: py:class reference target not found: ini2toml.intermediate_repr.T
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/intermediate_repr.py:docstring of ini2toml.intermediate_repr.CommentedList:1: WARNING: py:obj reference target not found: ini2toml.intermediate_repr.T
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/intermediate_repr.py:docstring of ini2toml.intermediate_repr.CommentedList.insert_line:: WARNING: py:class reference target not found: ini2toml.intermediate_repr.T
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/intermediate_repr.py:docstring of ini2toml.intermediate_repr.IntermediateRepr.append:1: WARNING: py:meth reference target not found: collections.abc.MutableMapping.append
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/intermediate_repr.py:docstring of ini2toml.intermediate_repr.IntermediateRepr.copy:: WARNING: py:class reference target not found: ini2toml.intermediate_repr.R
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/intermediate_repr.py:docstring of ini2toml.intermediate_repr.IntermediateRepr.insert:1: WARNING: py:meth reference target not found: collections.abc.MutableMapping.insert
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/intermediate_repr.py:docstring of ini2toml.intermediate_repr.IntermediateRepr.replace_first_remove_others:1: WARNING: py:meth reference target not found: replace
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/profile.py:docstring of ini2toml.profile.Profile:: WARNING: py:class reference target not found: ini2toml.types.R
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/profile.py:docstring of ini2toml.profile.Profile:: WARNING: py:class reference target not found: ini2toml.types.R
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/profile.py:docstring of ini2toml.profile.replace:: WARNING: py:class reference target not found: ini2toml.profile.P
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/profile.py:docstring of ini2toml.profile.replace:: WARNING: py:class reference target not found: ini2toml.profile.P
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/profile.py:docstring of ini2toml.profile.replace:: WARNING: py:class reference target not found: ini2toml.profile.P
<unknown>:1: WARNING: py:obj reference target not found: ini2toml.transformations.T
docstring of ini2toml.transformations.Transformation:6: WARNING: py:obj reference target not found: Commented
docstring of ini2toml.transformations.Transformation:6: WARNING: py:obj reference target not found: CommentedList
<unknown>:1: WARNING: py:obj reference target not found: ini2toml.transformations.M
<unknown>:1: WARNING: py:obj reference target not found: ini2toml.transformations.M
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/transformations.py:docstring of ini2toml.transformations.deprecated:: WARNING: py:class reference target not found: ini2toml.transformations.TF
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/transformations.py:docstring of ini2toml.transformations.noop:: WARNING: py:class reference target not found: ini2toml.transformations.T
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/transformations.py:docstring of ini2toml.transformations.noop:: WARNING: py:class reference target not found: ini2toml.transformations.T
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/transformations.py:docstring of ini2toml.transformations.pipe:: WARNING: py:class reference target not found: ini2toml.transformations.S
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/transformations.py:docstring of ini2toml.transformations.pipe:: WARNING: py:class reference target not found: ini2toml.transformations.T
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/transformations.py:docstring of ini2toml.transformations.pipe:: WARNING: py:class reference target not found: ini2toml.transformations.T
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/transformations.py:docstring of ini2toml.transformations.pipe:: WARNING: py:class reference target not found: ini2toml.transformations.U
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/transformations.py:docstring of ini2toml.transformations.pipe:: WARNING: py:class reference target not found: ini2toml.transformations.S
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/transformations.py:docstring of ini2toml.transformations.pipe:: WARNING: py:class reference target not found: ini2toml.transformations.U
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/transformations.py:docstring of ini2toml.transformations.pipe:: WARNING: py:class reference target not found: ini2toml.transformations.S
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/transformations.py:docstring of ini2toml.transformations.pipe:: WARNING: py:class reference target not found: ini2toml.transformations.T
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/transformations.py:docstring of ini2toml.transformations.pipe:: WARNING: py:class reference target not found: ini2toml.transformations.T
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/transformations.py:docstring of ini2toml.transformations.pipe:: WARNING: py:class reference target not found: ini2toml.transformations.U
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/transformations.py:docstring of ini2toml.transformations.pipe:: WARNING: py:class reference target not found: ini2toml.transformations.U
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/transformations.py:docstring of ini2toml.transformations.pipe:: WARNING: py:class reference target not found: ini2toml.transformations.V
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/transformations.py:docstring of ini2toml.transformations.pipe:: WARNING: py:class reference target not found: ini2toml.transformations.S
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/transformations.py:docstring of ini2toml.transformations.pipe:: WARNING: py:class reference target not found: ini2toml.transformations.V
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/transformations.py:docstring of ini2toml.transformations.pipe:: WARNING: py:class reference target not found: ini2toml.transformations.S
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/transformations.py:docstring of ini2toml.transformations.pipe:: WARNING: py:class reference target not found: ini2toml.transformations.T
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/transformations.py:docstring of ini2toml.transformations.pipe:: WARNING: py:class reference target not found: ini2toml.transformations.T
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/transformations.py:docstring of ini2toml.transformations.pipe:: WARNING: py:class reference target not found: ini2toml.transformations.U
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/transformations.py:docstring of ini2toml.transformations.pipe:: WARNING: py:class reference target not found: ini2toml.transformations.U
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/transformations.py:docstring of ini2toml.transformations.pipe:: WARNING: py:class reference target not found: ini2toml.transformations.V
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/transformations.py:docstring of ini2toml.transformations.pipe:: WARNING: py:class reference target not found: ini2toml.transformations.V
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/transformations.py:docstring of ini2toml.transformations.pipe:: WARNING: py:class reference target not found: ini2toml.transformations.X
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/transformations.py:docstring of ini2toml.transformations.pipe:: WARNING: py:class reference target not found: ini2toml.transformations.S
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/transformations.py:docstring of ini2toml.transformations.pipe:: WARNING: py:class reference target not found: ini2toml.transformations.X
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/transformations.py:docstring of ini2toml.transformations.pipe:: WARNING: py:class reference target not found: ini2toml.transformations.S
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/transformations.py:docstring of ini2toml.transformations.pipe:: WARNING: py:class reference target not found: ini2toml.transformations.T
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/transformations.py:docstring of ini2toml.transformations.pipe:: WARNING: py:class reference target not found: ini2toml.transformations.T
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/transformations.py:docstring of ini2toml.transformations.pipe:: WARNING: py:class reference target not found: ini2toml.transformations.U
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/transformations.py:docstring of ini2toml.transformations.pipe:: WARNING: py:class reference target not found: ini2toml.transformations.U
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/transformations.py:docstring of ini2toml.transformations.pipe:: WARNING: py:class reference target not found: ini2toml.transformations.V
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/transformations.py:docstring of ini2toml.transformations.pipe:: WARNING: py:class reference target not found: ini2toml.transformations.V
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/transformations.py:docstring of ini2toml.transformations.pipe:: WARNING: py:class reference target not found: ini2toml.transformations.X
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/transformations.py:docstring of ini2toml.transformations.pipe:: WARNING: py:class reference target not found: ini2toml.transformations.X
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/transformations.py:docstring of ini2toml.transformations.pipe:: WARNING: py:class reference target not found: ini2toml.transformations.Y
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/transformations.py:docstring of ini2toml.transformations.pipe:: WARNING: py:class reference target not found: ini2toml.transformations.S
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/transformations.py:docstring of ini2toml.transformations.pipe:: WARNING: py:class reference target not found: ini2toml.transformations.Y
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/transformations.py:docstring of ini2toml.transformations.pipe:: WARNING: py:class reference target not found: ini2toml.transformations.S
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/transformations.py:docstring of ini2toml.transformations.pipe:: WARNING: py:class reference target not found: ini2toml.transformations.T
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/transformations.py:docstring of ini2toml.transformations.pipe:: WARNING: py:class reference target not found: ini2toml.transformations.T
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/transformations.py:docstring of ini2toml.transformations.pipe:: WARNING: py:class reference target not found: ini2toml.transformations.U
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/transformations.py:docstring of ini2toml.transformations.pipe:: WARNING: py:class reference target not found: ini2toml.transformations.U
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/transformations.py:docstring of ini2toml.transformations.pipe:: WARNING: py:class reference target not found: ini2toml.transformations.V
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/transformations.py:docstring of ini2toml.transformations.pipe:: WARNING: py:class reference target not found: ini2toml.transformations.V
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/transformations.py:docstring of ini2toml.transformations.pipe:: WARNING: py:class reference target not found: ini2toml.transformations.X
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/transformations.py:docstring of ini2toml.transformations.pipe:: WARNING: py:class reference target not found: ini2toml.transformations.X
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/transformations.py:docstring of ini2toml.transformations.pipe:: WARNING: py:class reference target not found: ini2toml.transformations.Y
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/transformations.py:docstring of ini2toml.transformations.pipe:: WARNING: py:class reference target not found: ini2toml.transformations.Y
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/transformations.py:docstring of ini2toml.transformations.pipe:: WARNING: py:class reference target not found: ini2toml.transformations.Y
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/transformations.py:docstring of ini2toml.transformations.pipe:: WARNING: py:class reference target not found: ini2toml.transformations.S
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/transformations.py:docstring of ini2toml.transformations.pipe:: WARNING: py:class reference target not found: ini2toml.transformations.Y
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/transformations.py:docstring of ini2toml.transformations.split_comment:: WARNING: py:class reference target not found: ini2toml.transformations.T
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/transformations.py:docstring of ini2toml.transformations.split_comment:: WARNING: py:class reference target not found: ini2toml.transformations.T
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/transformations.py:docstring of ini2toml.transformations.split_kv_pairs:: WARNING: py:class reference target not found: ini2toml.transformations.T
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/transformations.py:docstring of ini2toml.transformations.split_kv_pairs:: WARNING: py:class reference target not found: ini2toml.transformations.T
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/transformations.py:docstring of ini2toml.transformations.split_kv_pairs:: WARNING: py:class reference target not found: ini2toml.transformations.T
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/transformations.py:docstring of ini2toml.transformations.split_kv_pairs:: WARNING: py:class reference target not found: ini2toml.transformations.T
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/transformations.py:docstring of ini2toml.transformations.split_kv_pairs:3: WARNING: py:func reference target not found: str.splitlines
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/transformations.py:docstring of ini2toml.transformations.split_list:: WARNING: py:class reference target not found: ini2toml.transformations.T
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/transformations.py:docstring of ini2toml.transformations.split_list:: WARNING: py:class reference target not found: ini2toml.transformations.T
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/transformations.py:docstring of ini2toml.transformations.split_list:: WARNING: py:class reference target not found: ini2toml.transformations.T
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/transformations.py:docstring of ini2toml.transformations.split_list:: WARNING: py:class reference target not found: ini2toml.transformations.T
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/transformations.py:docstring of ini2toml.transformations.split_list:3: WARNING: py:func reference target not found: str.splitlines
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/intermediate_repr.py:docstring of ini2toml.intermediate_repr.Commented:: WARNING: py:class reference target not found: ini2toml.intermediate_repr.T
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/intermediate_repr.py:docstring of ini2toml.intermediate_repr.Commented:1: WARNING: py:obj reference target not found: ini2toml.intermediate_repr.T
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/intermediate_repr.py:docstring of ini2toml.intermediate_repr.Commented.as_commented_list:: WARNING: py:class reference target not found: ini2toml.intermediate_repr.T
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/intermediate_repr.py:docstring of ini2toml.intermediate_repr.Commented.value_or:: WARNING: py:class reference target not found: ini2toml.intermediate_repr.S
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/intermediate_repr.py:docstring of ini2toml.intermediate_repr.Commented.value_or:: WARNING: py:class reference target not found: ini2toml.intermediate_repr.T
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/intermediate_repr.py:docstring of ini2toml.intermediate_repr.Commented.value_or:: WARNING: py:class reference target not found: ini2toml.intermediate_repr.S
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/intermediate_repr.py:docstring of ini2toml.intermediate_repr.CommentedKV:: WARNING: py:class reference target not found: ini2toml.intermediate_repr.T
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/intermediate_repr.py:docstring of ini2toml.intermediate_repr.CommentedKV:1: WARNING: py:obj reference target not found: ini2toml.intermediate_repr.T
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/intermediate_repr.py:docstring of ini2toml.intermediate_repr.CommentedKV.insert_line:: WARNING: py:class reference target not found: ini2toml.intermediate_repr.T
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/intermediate_repr.py:docstring of ini2toml.intermediate_repr.CommentedList:: WARNING: py:class reference target not found: ini2toml.intermediate_repr.T
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/intermediate_repr.py:docstring of ini2toml.intermediate_repr.CommentedList:1: WARNING: py:obj reference target not found: ini2toml.intermediate_repr.T
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/intermediate_repr.py:docstring of ini2toml.intermediate_repr.CommentedList.insert_line:: WARNING: py:class reference target not found: ini2toml.intermediate_repr.T
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/intermediate_repr.py:docstring of ini2toml.intermediate_repr.IntermediateRepr.append:1: WARNING: py:meth reference target not found: collections.abc.MutableMapping.append
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/intermediate_repr.py:docstring of ini2toml.intermediate_repr.IntermediateRepr.copy:: WARNING: py:class reference target not found: ini2toml.intermediate_repr.R
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/intermediate_repr.py:docstring of ini2toml.intermediate_repr.IntermediateRepr.insert:1: WARNING: py:meth reference target not found: collections.abc.MutableMapping.insert
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/intermediate_repr.py:docstring of ini2toml.intermediate_repr.IntermediateRepr.replace_first_remove_others:1: WARNING: py:meth reference target not found: replace
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/types.py:docstring of ini2toml.types.Profile.intermediate_processors:: WARNING: py:class reference target not found: ini2toml.types.R
/home/tkloczko/rpmbuild/BUILD/ini2toml-0.10/docs/../src/ini2toml/types.py:docstring of ini2toml.types.Profile.intermediate_processors:: WARNING: py:class reference target not found: ini2toml.types.R
done
build succeeded, 199 warnings.
I'm packaging ini2toml 0.12 for OpenIndiana. I ran tests and I found that three tests fails:
=========================== short test summary info ============================
FAILED tests/test_examples.py::test_examples_api_lite[tests/examples/django/setup.cfg-tests/examples/django/pyproject.toml]
FAILED tests/test_examples.py::test_examples_api[tests/examples/django/setup.cfg-tests/examples/django/pyproject.toml]
FAILED tests/test_examples.py::test_examples_cli[tests/examples/django/setup.cfg-tests/examples/django/pyproject.toml]
All failures are similar:
_ test_examples_api_lite[tests/examples/django/setup.cfg-tests/examples/django/pyproject.toml] _
original = 'tests/examples/django/setup.cfg'
expected = 'tests/examples/django/pyproject.toml'
validate = <validate_pyproject.api.Validator object at 0x7fffa8059d30>
@pytest.mark.filterwarnings("ignore::DeprecationWarning")
@pytest.mark.parametrize(("original", "expected"), list(examples()))
def test_examples_api_lite(original, expected, validate):
opts = {"ini_loads_fn": configparser.parse, "toml_dumps_fn": lite_toml.convert}
translator = Translator(**opts)
available_profiles = list(translator.profiles.keys())
profile = cli.guess_profile(None, original, available_profiles)
# We cannot compare "flake8" sections (currently not handled)
# (ConfigParser automatically strips comments, contrary to ConfigUpdater)
orig = Path(original)
# Make sure file ends in a newline (requirement for posix text files)
> translated = translator.translate(orig.read_text(encoding="utf-8"), profile)
tests/test_examples.py:75:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
../prototype/i386/usr/lib/python3.9/vendor-packages/ini2toml/base_translator.py:154: in translate
irepr = reduce(apply, profile.intermediate_processors, irepr)
../prototype/i386/usr/lib/python3.9/vendor-packages/ini2toml/transformations.py:325: in apply
return fn(x)
../prototype/i386/usr/lib/python3.9/vendor-packages/ini2toml/plugins/setuptools_pep621.py:663: in pep621_transform
out = reduce(apply, transformations, out)
../prototype/i386/usr/lib/python3.9/vendor-packages/ini2toml/transformations.py:325: in apply
return fn(x)
../prototype/i386/usr/lib/python3.9/vendor-packages/ini2toml/plugins/setuptools_pep621.py:588: in parse_setup_py_command_options
section = self._be.apply_best_effort_to_section(doc[k])
../prototype/i386/usr/lib/python3.9/vendor-packages/ini2toml/plugins/best_effort.py:47: in apply_best_effort_to_section
self.apply_best_effort(section, field, value)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <ini2toml.plugins.best_effort.BestEffort object at 0x7fffa7de0e50>
container = IntermediateRepr(
elements={'combine_as_imports': True,
'default_section': 'THIRDPARTY',
'include_traili...clude_trailing_comma',
'known_first_party',
'line_length',
'multi_line_output'],
inline_comment=''
)
field = 'combine_as_imports', value = True
def apply_best_effort(self, container: M, field: str, value: str):
if isinstance(field, HiddenKey):
return
> lines = value.splitlines()
E AttributeError: 'bool' object has no attribute 'splitlines'
../prototype/i386/usr/lib/python3.9/vendor-packages/ini2toml/plugins/best_effort.py:53: AttributeError
Please note there is no django
installed.
Right now the API usage is directly influenced by which dependencies are installed. That might be not so good for environments that need determinism (e.g. tests).
Even if the user specify as a dependency ini2toml[lite]
, if ConfigUpdater
is installed in the same environment, the behaviour will be affected.
This is the root of the problem in pypa/setuptools#4315.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.