Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Remove py2-specific dependencies and fix tests #192

Merged
merged 5 commits into from
Feb 23, 2021
Merged

Conversation

mgorny
Copy link
Contributor

@mgorny mgorny commented Feb 23, 2021

  1. Fix GitHub actions to actually test against the requested Python version (rather than 2.7 everywhere).
  2. Replace external mock with py3's unittest.mock.
  3. Remove dependency on six.
  4. Use the new pytest executable name.

@mgorny
Copy link
Contributor Author

mgorny commented Feb 23, 2021

I dare say the tests are using Python 2.7 instead of the Python they were supposed to test.

@mgorny
Copy link
Contributor Author

mgorny commented Feb 23, 2021

I'm going to experiment a little trying to fix it.

@mgorny mgorny force-pushed the py3-mock branch 3 times, most recently from 399070c to 27b293b Compare February 23, 2021 07:54
Replace the use of external 'mock' package with the 'unittest.mock'
module provided by Python 3.  Since Python 2 is no longer supported,
this eliminates an unnecessary dependency.
@mgorny mgorny changed the title Use built-in Python 3 unittest.mock module Remove py2-specific dependencies and fix tests Feb 23, 2021
The pytest executable is called 'pytest' now.  While the old name
is still provided, it's better to use the new one in case some future
version removed it.
@mgorny
Copy link
Contributor Author

mgorny commented Feb 23, 2021

Ok, it's ready for review now.

@di di merged commit 6a9b282 into pypa:main Feb 23, 2021
@di
Copy link
Member

di commented Feb 23, 2021

Great catch, thanks!

miketheman added a commit to miketheman/readme_renderer that referenced this pull request Mar 9, 2022
Surfaced via `mypy`, in that the `html.parser` module does not have
a direct implementation of `unescape`.
Refs: https://docs.python.org/3.6/library/html.html#html.unescape

In pypa#192 support for Python 2.7 was removed, the import path changed.

This works due to imports placing the imported code in the local scope.
If the `html.parser` module ever stopped importing `unescape`,
this import would break as a result.

Signed-off-by: Mike Fiedler <miketheman@gmail.com>
di pushed a commit that referenced this pull request Mar 11, 2022
* chore: add mypy testing

Scaffolding in the testing, and will not complete succssfully yet.

Will be followed by code changes to pass.

Signed-off-by: Mike Fiedler <miketheman@gmail.com>

* lint: ignore empty dict

Surfaced via `mypy`, in that an empty dict could not infer what types
could be there.

Instead of importing `typing` and annotating the empty Dict, I opted
to ignore the line, as we do not expect to populate the dict at all,
and are using it to **prevent** additions to the value.

Signed-off-by: Mike Fiedler <miketheman@gmail.com>

* chore: remove unused styles parameter

Surfaced via `mypy`, recommended adding a type to the empty list.

The list was originally empty back in 0.1.0.

Instead of adding a type, remove the constant, and the code that uses it
from `clean()` - as it was partially reverted in #121.

The default `ALLOWED_STYLES` in the underlying library is `[]`.

Related: #114 (comment)

Signed-off-by: Mike Fiedler <miketheman@gmail.com>

* fix: correct import for unescape

Surfaced via `mypy`, in that the `html.parser` module does not have
a direct implementation of `unescape`.
Refs: https://docs.python.org/3.6/library/html.html#html.unescape

In #192 support for Python 2.7 was removed, the import path changed.

This works due to imports placing the imported code in the local scope.
If the `html.parser` module ever stopped importing `unescape`,
this import would break as a result.

Signed-off-by: Mike Fiedler <miketheman@gmail.com>

* chore: update pytest markers cli flag

Currently emits a warning:

    PytestRemovedIn8Warning: The --strict option is deprecated, use --strict-markers instead.

Signed-off-by: Mike Fiedler <miketheman@gmail.com>

* chore(types): add types to clean module

Surfaced by running mypy in strict mode, and added types where relevant.

Signed-off-by: Mike Fiedler <miketheman@gmail.com>

* chore(types): add types to txt module

Signed-off-by: Mike Fiedler <miketheman@gmail.com>

* chore(types): add types to markdown module

Signed-off-by: Mike Fiedler <miketheman@gmail.com>

* chore: add types to rst module

The types-docutils hints are still incomplete,
good progress is being made.
See: python/typeshed#7256

I've had to use an ignore on the class inheritance, and a couple of
`typing.Any` annotations until that package implements more type hints.

Signed-off-by: Mike Fiedler <miketheman@gmail.com>

* chore: ignore distutils module from types

`mypy` strict mode is having a hard time with the `distutils`
imports, since they are wrapped in `setuptools` right now as a private
package. This pacakge's distutils integration will need to be reworked
anyhow. Left a comment with details at the top of the file.

Signed-off-by: Mike Fiedler <miketheman@gmail.com>

* test: use strict mode for mypy

Prevent new things from creeping in during development.

Signed-off-by: Mike Fiedler <miketheman@gmail.com>

* chore: tell the world we've got types

Include a blank `py.typed` file in the package to inform `mypy` that
there's types to be found in this package.

Signed-off-by: Mike Fiedler <miketheman@gmail.com>

* chore: move strict flag to config

Allows other tools to ebenfit from a consistent configuration.

Signed-off-by: Mike Fiedler <miketheman@gmail.com>

* refactor: change imports to be consistent with others

Signed-off-by: Mike Fiedler <miketheman@gmail.com>

* docs: add inline details for specific ignores

Signed-off-by: Mike Fiedler <miketheman@gmail.com>

* lint: apply more specific type

Signed-off-by: Mike Fiedler <miketheman@gmail.com>

* docs: add comment to why source is Any

Signed-off-by: Mike Fiedler <miketheman@gmail.com>

* lint: replace typing imports with relative ones

Signed-off-by: Mike Fiedler <miketheman@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants