Skip to content

Add PEP 561 guideline #208

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

Merged
merged 4 commits into from
Jan 9, 2023
Merged

Add PEP 561 guideline #208

merged 4 commits into from
Jan 9, 2023

Conversation

aMahanna
Copy link
Member

@aMahanna aMahanna commented Jun 17, 2022

Closes #203

How to test

  1. pip install mypy git+https://github.com/ArangoDB-Community/python-arango.git@fix/mypy-py-typed
  2. echo "from arango.database import StandardDatabase" >> temp.py
  3. mypy temp.py

@aMahanna aMahanna marked this pull request as draft June 17, 2022 23:45
@codecov-commenter
Copy link

codecov-commenter commented Jun 17, 2022

Codecov Report

Merging #208 (114fb44) into main (21c9e5d) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main     #208   +/-   ##
=======================================
  Coverage   99.86%   99.86%           
=======================================
  Files          26       26           
  Lines        3723     3723           
=======================================
  Hits         3718     3718           
  Misses          5        5           

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 21c9e5d...114fb44. Read the comment docs.

aMahanna added 2 commits June 17, 2022 19:51
(first commit did not solve issue)
@aMahanna
Copy link
Member Author

Issue is not solved as of 0ac6f9d

@joowani
Copy link
Contributor

joowani commented Jun 18, 2022

Issue is not solved as of 0ac6f9d

You should be able to put it in MANIFEST.in to make sure it is included.

@aMahanna
Copy link
Member Author

aMahanna commented Jun 18, 2022

You should be able to put it in MANIFEST.in to make sure it is included.

I currently have global-include *.typed in the MANIFEST.in, it seems to be recognized since installing this branch via pip install shows that there is an arango/py.typed file 🤔

@aMahanna
Copy link
Member Author

Update: not solved as of 114fb44

@pvicente
Copy link

pvicente commented Jan 3, 2023

Hi, I've built the package in local like in CI and installed from local wheel and it fixes the issue:

(.venv-python-arango-local)  pedrovicente@pedrovicente  ~/cytora/test-mypy-arango  pip install ../python-arango/dist/python_arango-7.3.5.dev5+g114fb44-py3-none-any.whl mypy
Processing /Users/pedrovicente/cytora/python-arango/dist/python_arango-7.3.5.dev5+g114fb44-py3-none-any.whl
Collecting mypy
  Using cached mypy-0.991-cp39-cp39-macosx_11_0_arm64.whl (10.0 MB)
Requirement already satisfied: setuptools>=42 in ./.venv-python-arango-local/lib/python3.9/site-packages (from python-arango==7.3.5.dev5+g114fb44) (65.4.1)
Collecting requests
  Using cached requests-2.28.1-py3-none-any.whl (62 kB)
Collecting requests-toolbelt
  Using cached requests_toolbelt-0.10.1-py2.py3-none-any.whl (54 kB)
Collecting PyJWT
  Using cached PyJWT-2.6.0-py3-none-any.whl (20 kB)
Collecting urllib3>=1.26.0
  Using cached urllib3-1.26.13-py2.py3-none-any.whl (140 kB)
Collecting mypy-extensions>=0.4.3
  Using cached mypy_extensions-0.4.3-py2.py3-none-any.whl (4.5 kB)
Collecting typing-extensions>=3.10
  Using cached typing_extensions-4.4.0-py3-none-any.whl (26 kB)
Collecting tomli>=1.1.0
  Using cached tomli-2.0.1-py3-none-any.whl (12 kB)
Collecting certifi>=2017.4.17
  Using cached certifi-2022.12.7-py3-none-any.whl (155 kB)
Collecting charset-normalizer<3,>=2
  Using cached charset_normalizer-2.1.1-py3-none-any.whl (39 kB)
Collecting idna<4,>=2.5
  Using cached idna-3.4-py3-none-any.whl (61 kB)
Installing collected packages: mypy-extensions, urllib3, typing-extensions, tomli, PyJWT, idna, charset-normalizer, certifi, requests, mypy, requests-toolbelt, python-arango
Successfully installed PyJWT-2.6.0 certifi-2022.12.7 charset-normalizer-2.1.1 idna-3.4 mypy-0.991 mypy-extensions-0.4.3 python-arango-7.3.5.dev5+g114fb44 requests-2.28.1 requests-toolbelt-0.10.1 tomli-2.0.1 typing-extensions-4.4.0 urllib3-1.26.13

[notice] A new release of pip available: 22.2.2 -> 22.3.1
[notice] To update, run: pip install --upgrade pip
(.venv-python-arango-local)  pedrovicente@pedrovicente  ~/cytora/test-mypy-arango  mypy temp.py
Success: no issues found in 1 source file

You can see that I can reproduce the error from issue installing python-arango from pypi:

(.venv-python-arango)  pedrovicente@pedrovicente  ~/cytora/test-mypy-arango  pip install python-arango mypy
Collecting python-arango
  Using cached python_arango-7.5.4-py3-none-any.whl (99 kB)
Collecting mypy
  Using cached mypy-0.991-cp39-cp39-macosx_11_0_arm64.whl (10.0 MB)
Requirement already satisfied: setuptools>=42 in ./.venv-python-arango/lib/python3.9/site-packages (from python-arango) (65.4.1)
Collecting requests
  Using cached requests-2.28.1-py3-none-any.whl (62 kB)
Collecting PyJWT
  Using cached PyJWT-2.6.0-py3-none-any.whl (20 kB)
Collecting urllib3>=1.26.0
  Using cached urllib3-1.26.13-py2.py3-none-any.whl (140 kB)
Collecting requests-toolbelt
  Using cached requests_toolbelt-0.10.1-py2.py3-none-any.whl (54 kB)
Collecting typing-extensions>=3.10
  Using cached typing_extensions-4.4.0-py3-none-any.whl (26 kB)
Collecting mypy-extensions>=0.4.3
  Using cached mypy_extensions-0.4.3-py2.py3-none-any.whl (4.5 kB)
Collecting tomli>=1.1.0
  Using cached tomli-2.0.1-py3-none-any.whl (12 kB)
Collecting certifi>=2017.4.17
  Using cached certifi-2022.12.7-py3-none-any.whl (155 kB)
Collecting charset-normalizer<3,>=2
  Using cached charset_normalizer-2.1.1-py3-none-any.whl (39 kB)
Collecting idna<4,>=2.5
  Using cached idna-3.4-py3-none-any.whl (61 kB)
Installing collected packages: mypy-extensions, urllib3, typing-extensions, tomli, PyJWT, idna, charset-normalizer, certifi, requests, mypy, requests-toolbelt, python-arango
Successfully installed PyJWT-2.6.0 certifi-2022.12.7 charset-normalizer-2.1.1 idna-3.4 mypy-0.991 mypy-extensions-0.4.3 python-arango-7.5.4 requests-2.28.1 requests-toolbelt-0.10.1 tomli-2.0.1 typing-extensions-4.4.0 urllib3-1.26.13

[notice] A new release of pip available: 22.2.2 -> 22.3.1
[notice] To update, run: pip install --upgrade pip
(.venv-python-arango)  pedrovicente@pedrovicente  ~/cytora/test-mypy-arango  mypy temp.py
temp.py:1: error: Skipping analyzing "arango.database": module is installed, but missing library stubs or py.typed marker  [import]
temp.py:1: note: See https://mypy.readthedocs.io/en/stable/running_mypy.html#missing-imports
Found 1 error in 1 file (checked 1 source file)

You can see how I've built the wheel from this branch and py.typed is included in package

(.venv)  ✘ pedrovicente@pedrovicente  ~/cytora/python-arango   fix/mypy-py-typed  python setup.py sdist bdist_wheel
running sdist
running egg_info
writing python_arango.egg-info/PKG-INFO
writing dependency_links to python_arango.egg-info/dependency_links.txt
writing requirements to python_arango.egg-info/requires.txt
writing top-level names to python_arango.egg-info/top_level.txt
reading manifest template 'MANIFEST.in'
adding license file 'LICENSE'
writing manifest file 'python_arango.egg-info/SOURCES.txt'
running check
creating python-arango-7.3.5.dev5+g114fb44
creating python-arango-7.3.5.dev5+g114fb44/.github
creating python-arango-7.3.5.dev5+g114fb44/.github/workflows
creating python-arango-7.3.5.dev5+g114fb44/arango
creating python-arango-7.3.5.dev5+g114fb44/docs
creating python-arango-7.3.5.dev5+g114fb44/docs/static
creating python-arango-7.3.5.dev5+g114fb44/python_arango.egg-info
copying files to python-arango-7.3.5.dev5+g114fb44...
copying .gitignore -> python-arango-7.3.5.dev5+g114fb44
copying .pre-commit-config.yaml -> python-arango-7.3.5.dev5+g114fb44
copying CONTRIBUTING.md -> python-arango-7.3.5.dev5+g114fb44
copying LICENSE -> python-arango-7.3.5.dev5+g114fb44
copying MANIFEST.in -> python-arango-7.3.5.dev5+g114fb44
copying README.md -> python-arango-7.3.5.dev5+g114fb44
copying pyproject.toml -> python-arango-7.3.5.dev5+g114fb44
copying setup.cfg -> python-arango-7.3.5.dev5+g114fb44
copying setup.py -> python-arango-7.3.5.dev5+g114fb44
copying .github/workflows/build.yaml -> python-arango-7.3.5.dev5+g114fb44/.github/workflows
copying .github/workflows/codeql.yaml -> python-arango-7.3.5.dev5+g114fb44/.github/workflows
copying .github/workflows/pypi.yaml -> python-arango-7.3.5.dev5+g114fb44/.github/workflows
copying arango/__init__.py -> python-arango-7.3.5.dev5+g114fb44/arango
copying arango/api.py -> python-arango-7.3.5.dev5+g114fb44/arango
copying arango/aql.py -> python-arango-7.3.5.dev5+g114fb44/arango
copying arango/backup.py -> python-arango-7.3.5.dev5+g114fb44/arango
copying arango/client.py -> python-arango-7.3.5.dev5+g114fb44/arango
copying arango/cluster.py -> python-arango-7.3.5.dev5+g114fb44/arango
copying arango/collection.py -> python-arango-7.3.5.dev5+g114fb44/arango
copying arango/connection.py -> python-arango-7.3.5.dev5+g114fb44/arango
copying arango/cursor.py -> python-arango-7.3.5.dev5+g114fb44/arango
copying arango/database.py -> python-arango-7.3.5.dev5+g114fb44/arango
copying arango/errno.py -> python-arango-7.3.5.dev5+g114fb44/arango
copying arango/exceptions.py -> python-arango-7.3.5.dev5+g114fb44/arango
copying arango/executor.py -> python-arango-7.3.5.dev5+g114fb44/arango
copying arango/formatter.py -> python-arango-7.3.5.dev5+g114fb44/arango
copying arango/foxx.py -> python-arango-7.3.5.dev5+g114fb44/arango
copying arango/graph.py -> python-arango-7.3.5.dev5+g114fb44/arango
copying arango/http.py -> python-arango-7.3.5.dev5+g114fb44/arango
copying arango/job.py -> python-arango-7.3.5.dev5+g114fb44/arango
copying arango/pregel.py -> python-arango-7.3.5.dev5+g114fb44/arango
copying arango/py.typed -> python-arango-7.3.5.dev5+g114fb44/arango
copying arango/replication.py -> python-arango-7.3.5.dev5+g114fb44/arango
copying arango/request.py -> python-arango-7.3.5.dev5+g114fb44/arango
copying arango/resolver.py -> python-arango-7.3.5.dev5+g114fb44/arango
copying arango/response.py -> python-arango-7.3.5.dev5+g114fb44/arango
copying arango/result.py -> python-arango-7.3.5.dev5+g114fb44/arango
copying arango/typings.py -> python-arango-7.3.5.dev5+g114fb44/arango
copying arango/utils.py -> python-arango-7.3.5.dev5+g114fb44/arango
copying arango/version.py -> python-arango-7.3.5.dev5+g114fb44/arango
copying arango/wal.py -> python-arango-7.3.5.dev5+g114fb44/arango
copying docs/Makefile -> python-arango-7.3.5.dev5+g114fb44/docs
copying docs/admin.rst -> python-arango-7.3.5.dev5+g114fb44/docs
copying docs/analyzer.rst -> python-arango-7.3.5.dev5+g114fb44/docs
copying docs/aql.rst -> python-arango-7.3.5.dev5+g114fb44/docs
copying docs/async.rst -> python-arango-7.3.5.dev5+g114fb44/docs
copying docs/auth.rst -> python-arango-7.3.5.dev5+g114fb44/docs
copying docs/backup.rst -> python-arango-7.3.5.dev5+g114fb44/docs
copying docs/batch.rst -> python-arango-7.3.5.dev5+g114fb44/docs
copying docs/certificates.rst -> python-arango-7.3.5.dev5+g114fb44/docs
copying docs/cluster.rst -> python-arango-7.3.5.dev5+g114fb44/docs
copying docs/collection.rst -> python-arango-7.3.5.dev5+g114fb44/docs
copying docs/conf.py -> python-arango-7.3.5.dev5+g114fb44/docs
copying docs/contributing.rst -> python-arango-7.3.5.dev5+g114fb44/docs
copying docs/cursor.rst -> python-arango-7.3.5.dev5+g114fb44/docs
copying docs/database.rst -> python-arango-7.3.5.dev5+g114fb44/docs
copying docs/document.rst -> python-arango-7.3.5.dev5+g114fb44/docs
copying docs/errno.rst -> python-arango-7.3.5.dev5+g114fb44/docs
copying docs/errors.rst -> python-arango-7.3.5.dev5+g114fb44/docs
copying docs/foxx.rst -> python-arango-7.3.5.dev5+g114fb44/docs
copying docs/graph.rst -> python-arango-7.3.5.dev5+g114fb44/docs
copying docs/http.rst -> python-arango-7.3.5.dev5+g114fb44/docs
copying docs/index.rst -> python-arango-7.3.5.dev5+g114fb44/docs
copying docs/indexes.rst -> python-arango-7.3.5.dev5+g114fb44/docs
copying docs/logging.rst -> python-arango-7.3.5.dev5+g114fb44/docs
copying docs/make.bat -> python-arango-7.3.5.dev5+g114fb44/docs
copying docs/overview.rst -> python-arango-7.3.5.dev5+g114fb44/docs
copying docs/pregel.rst -> python-arango-7.3.5.dev5+g114fb44/docs
copying docs/replication.rst -> python-arango-7.3.5.dev5+g114fb44/docs
copying docs/schema.rst -> python-arango-7.3.5.dev5+g114fb44/docs
copying docs/serializer.rst -> python-arango-7.3.5.dev5+g114fb44/docs
copying docs/simple.rst -> python-arango-7.3.5.dev5+g114fb44/docs
copying docs/specs.rst -> python-arango-7.3.5.dev5+g114fb44/docs
copying docs/task.rst -> python-arango-7.3.5.dev5+g114fb44/docs
copying docs/threading.rst -> python-arango-7.3.5.dev5+g114fb44/docs
copying docs/transaction.rst -> python-arango-7.3.5.dev5+g114fb44/docs
copying docs/user.rst -> python-arango-7.3.5.dev5+g114fb44/docs
copying docs/view.rst -> python-arango-7.3.5.dev5+g114fb44/docs
copying docs/wal.rst -> python-arango-7.3.5.dev5+g114fb44/docs
copying docs/static/logo.png -> python-arango-7.3.5.dev5+g114fb44/docs/static
copying python_arango.egg-info/PKG-INFO -> python-arango-7.3.5.dev5+g114fb44/python_arango.egg-info
copying python_arango.egg-info/SOURCES.txt -> python-arango-7.3.5.dev5+g114fb44/python_arango.egg-info
copying python_arango.egg-info/dependency_links.txt -> python-arango-7.3.5.dev5+g114fb44/python_arango.egg-info
copying python_arango.egg-info/requires.txt -> python-arango-7.3.5.dev5+g114fb44/python_arango.egg-info
copying python_arango.egg-info/top_level.txt -> python-arango-7.3.5.dev5+g114fb44/python_arango.egg-info
Writing python-arango-7.3.5.dev5+g114fb44/setup.cfg
creating dist
Creating tar archive
removing 'python-arango-7.3.5.dev5+g114fb44' (and everything under it)
running bdist_wheel
running build
running build_py
copying arango/formatter.py -> build/lib/arango
copying arango/version.py -> build/lib/arango
copying arango/pregel.py -> build/lib/arango
copying arango/database.py -> build/lib/arango
copying arango/client.py -> build/lib/arango
copying arango/request.py -> build/lib/arango
copying arango/typings.py -> build/lib/arango
copying arango/utils.py -> build/lib/arango
copying arango/aql.py -> build/lib/arango
copying arango/collection.py -> build/lib/arango
copying arango/exceptions.py -> build/lib/arango
copying arango/executor.py -> build/lib/arango
copying arango/cursor.py -> build/lib/arango
copying arango/py.typed -> build/lib/arango
/Users/pedrovicente/cytora/python-arango/.venv/lib/python3.9/site-packages/setuptools/command/install.py:34: SetuptoolsDeprecationWarning: setup.py install is deprecated. Use build and pip and other standards-based tools.
  warnings.warn(
installing to build/bdist.macosx-13-arm64/wheel
running install
running install_lib
creating build/bdist.macosx-13-arm64/wheel
creating build/bdist.macosx-13-arm64/wheel/arango
copying build/lib/arango/errno.py -> build/bdist.macosx-13-arm64/wheel/arango
copying build/lib/arango/backup.py -> build/bdist.macosx-13-arm64/wheel/arango
copying build/lib/arango/formatter.py -> build/bdist.macosx-13-arm64/wheel/arango
copying build/lib/arango/version.py -> build/bdist.macosx-13-arm64/wheel/arango
copying build/lib/arango/job.py -> build/bdist.macosx-13-arm64/wheel/arango
copying build/lib/arango/pregel.py -> build/bdist.macosx-13-arm64/wheel/arango
copying build/lib/arango/database.py -> build/bdist.macosx-13-arm64/wheel/arango
copying build/lib/arango/client.py -> build/bdist.macosx-13-arm64/wheel/arango
copying build/lib/arango/graph.py -> build/bdist.macosx-13-arm64/wheel/arango
copying build/lib/arango/request.py -> build/bdist.macosx-13-arm64/wheel/arango
copying build/lib/arango/typings.py -> build/bdist.macosx-13-arm64/wheel/arango
copying build/lib/arango/__init__.py -> build/bdist.macosx-13-arm64/wheel/arango
copying build/lib/arango/response.py -> build/bdist.macosx-13-arm64/wheel/arango
copying build/lib/arango/wal.py -> build/bdist.macosx-13-arm64/wheel/arango
copying build/lib/arango/api.py -> build/bdist.macosx-13-arm64/wheel/arango
copying build/lib/arango/result.py -> build/bdist.macosx-13-arm64/wheel/arango
copying build/lib/arango/connection.py -> build/bdist.macosx-13-arm64/wheel/arango
copying build/lib/arango/utils.py -> build/bdist.macosx-13-arm64/wheel/arango
copying build/lib/arango/cluster.py -> build/bdist.macosx-13-arm64/wheel/arango
copying build/lib/arango/aql.py -> build/bdist.macosx-13-arm64/wheel/arango
copying build/lib/arango/replication.py -> build/bdist.macosx-13-arm64/wheel/arango
copying build/lib/arango/http.py -> build/bdist.macosx-13-arm64/wheel/arango
copying build/lib/arango/resolver.py -> build/bdist.macosx-13-arm64/wheel/arango
copying build/lib/arango/collection.py -> build/bdist.macosx-13-arm64/wheel/arango
copying build/lib/arango/py.typed -> build/bdist.macosx-13-arm64/wheel/arango
copying build/lib/arango/exceptions.py -> build/bdist.macosx-13-arm64/wheel/arango
copying build/lib/arango/executor.py -> build/bdist.macosx-13-arm64/wheel/arango
copying build/lib/arango/cursor.py -> build/bdist.macosx-13-arm64/wheel/arango
copying build/lib/arango/foxx.py -> build/bdist.macosx-13-arm64/wheel/arango
running install_egg_info
Copying python_arango.egg-info to build/bdist.macosx-13-arm64/wheel/python_arango-7.3.5.dev5+g114fb44-py3.9.egg-info
running install_scripts
creating build/bdist.macosx-13-arm64/wheel/python_arango-7.3.5.dev5+g114fb44.dist-info/WHEEL
creating 'dist/python_arango-7.3.5.dev5+g114fb44-py3-none-any.whl' and adding 'build/bdist.macosx-13-arm64/wheel' to it
adding 'arango/__init__.py'
adding 'arango/api.py'
adding 'arango/aql.py'
adding 'arango/backup.py'
adding 'arango/client.py'
adding 'arango/cluster.py'
adding 'arango/collection.py'
adding 'arango/connection.py'
adding 'arango/cursor.py'
adding 'arango/database.py'
adding 'arango/errno.py'
adding 'arango/exceptions.py'
adding 'arango/executor.py'
adding 'arango/formatter.py'
adding 'arango/foxx.py'
adding 'arango/graph.py'
adding 'arango/http.py'
adding 'arango/job.py'
adding 'arango/pregel.py'
adding 'arango/py.typed'
adding 'arango/replication.py'
adding 'arango/request.py'
adding 'arango/resolver.py'
adding 'arango/response.py'
adding 'arango/result.py'
adding 'arango/typings.py'
adding 'arango/utils.py'
adding 'arango/version.py'
adding 'arango/wal.py'
adding 'python_arango-7.3.5.dev5+g114fb44.dist-info/LICENSE'
adding 'python_arango-7.3.5.dev5+g114fb44.dist-info/METADATA'
adding 'python_arango-7.3.5.dev5+g114fb44.dist-info/WHEEL'
adding 'python_arango-7.3.5.dev5+g114fb44.dist-info/top_level.txt'
adding 'python_arango-7.3.5.dev5+g114fb44.dist-info/RECORD'
removing build/bdist.macosx-13-arm64/wheel

Is there anything I'm missing @aMahanna? Could we merge this branch @joowani ?

@joowani joowani marked this pull request as ready for review January 3, 2023 18:19
@joowani
Copy link
Contributor

joowani commented Jan 3, 2023

LGTM

@pvicente
Copy link

pvicente commented Jan 3, 2023

@joowani @aMahanna thank you!!! could you merge it?

@pvicente
Copy link

pvicente commented Jan 9, 2023

@aMahanna @joowani any plans on merging it and release a new version?

@joowani joowani merged commit 1ab63c2 into main Jan 9, 2023
@joowani
Copy link
Contributor

joowani commented Jan 9, 2023

Sorry for the delay @pvicente. Merged and will make a release soon.

@joowani joowani deleted the fix/mypy-py-typed branch January 9, 2023 16:02
joowani pushed a commit that referenced this pull request Feb 1, 2023
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.

mypy error: skipping analyzing "arango.database"
4 participants