Roman Mogylatov
c92129dcb0
Add support for Python 3.13 ( #828 )
...
* Update tests pipeline and setup.py
* Update tox coverage command
* Add setuptools to the dev requirements file
* Enforce coverage version in tox
* Leave coveralls CI/CD job on Python 3.12 because coveralls 4.0.1 doesn't support Python 3.13
* Update changelog and publishing jobs
2024-11-04 00:01:28 -05:00
ZipFile
595daebd3a
Migrate to Cython3 ( #813 )
...
* Fix asyncio tests
* Convert class-private attributes to just private
* Upgrade to Cython 3
* Regenerate C files
* Fix tox coverage report
2024-11-03 20:48:40 -05:00
Roman Mogylatov
a5166bf591
Add Python 3.12 Support ( #752 ) ( #765 )
...
* Add Python 3.12 Support (#752 )
* Ignore .vscode
* Python 3.12 Support
* Change base python to 3.12 and pin pydantic to V1
* all tests passed
* ci: change default python to 3.12
* remove legacy python versions
* annotate pydantic models for tests
* Update publishing pipeline to use Python 3.12
* Test environment updates
* Update Cython to the latest prior 3.0 version and remove tracing from CI/CD
* Give up using editable tox installation in the coverage job
* Add mypy test fixes
* Remove tracing from the coverage job
* Fix typing test
* Remove PyPy 2.7
* Fix typing test
* Fix the typing issue with pydantic
* Remove pypy 3.9
* Fix the typing issue with mypy
* Update pydantic version to the latest from 1.x
* Update scipy deprecation warning filter
* Fix the tox job running coveralls
* Update changelog
---------
Co-authored-by: Anton Petrov <anton.a.petrov@gmail.com>
2024-08-06 22:41:24 -04:00
Roman Mogylatov
aaff333f01
Python 3.11 Support ( #647 )
...
* Update tests
* Enable tests on 3.11
* Fix coverage config in tox.ini
* feat: re cythonize to support python 3.11 (#646 )
* feat: re cythonize to support python 3.11
* misc: added tox env for python 3.11
* misc: add classifiers for python 3.11
* fix: skip tests for removed functions
* misc: CI updates for python 3.11
Co-authored-by: Roman Mogylatov <rmogilatov@gmail.com>
* Update tests and linters job
* Update test skip decorators
* Fix tox.ini
* Update 3.10 to be explicit string literal
* Move pypy3 to legacy job
* Fix error in resourse typing test
* Update publishing job
* Update actions and setup-python versions
* Update changelog
* Update pypy
* Update tox.ini with new pypy versions
* Update publishing job
* Update actions/upload-artifact@v3
* Update ubuntu to 22.04 on docs publishing job
* Update actions/download-artifact@v3 and pypa/gh-action-pypi-publish@release/v1
Co-authored-by: Gen Xu <xgbarry@gmail.com>
2022-12-18 21:09:14 -05:00
Roman Mogylatov
b97862cb9f
Python 3.10 ( #520 )
...
* Add GA test and linter jobs
* Remove not used async run() functions from tests
* Update aiohttp ext test
* Add botocore warning ignores
* Update changelog
* Update publishing job config for testing
* Publishing test #1
* Update GA tests-and-linters job to use latest ubuntu for tests
* Update publishing GA job
2021-10-20 12:10:05 -04:00
Roman Mogylatov
94aca21fb8
Pytest migration ( #519 )
...
* Add pytest and pytest-asyncio to the requirements
* Update aiohttp ext test
* Update setup.cfg
* Update tox.ini
* Add pytest to the tox requirements
* Update tox.ini
* Move configuration to tox.ini
* Add pytest configs
* Rename pytest-py34-py35.ini -> pytest-py35.ini
* Update config file paths
* Update makefile
* Migrate common tests to pytest
* Migrate FastAPI and Flask wiring tests
* Rename flask and fastapi wiring test files
* Move wiring autoloader tests
* Add pytest-asyncio to the tox.ini
* Migrate wiring async injection tests
* Migrate main wiring tests
* Migrate wiring string module and package names tests
* Migrate wiring config tests
* Migrate misc wiring tests
* Update tests structure
* Migrate misc wiring tests
* Refactor container.from_schema() API tests
* Migrate container.from_schema() integration tests
* Rename schema samples
* Update sample imports
* Migrate container tests
* Refactor container tests
* Migrate container self tests
* Migrate container instance tests
* Migrate container custom string attribute name tests
* Migrate container async resource tests
* Fix py2 container tests
* Migrate container cls tests
* Migrate container class custom string cls as atrribute name tests
* Migrate ext.aiohttp tests
* Migrate ext.flasks tests
* Update ext package tests doc block
* Migrate provider utils tests
* Migrate Factory async mode tests
* Migrate async tests
* Rename common test module
* Refactor asserts in provider tests
* Migrate factory tests
* Migrate selector provider tests
* Migrate object provider tests
* Migrate self provider tests
* Migrate delegate provider tests
* Migrate provider tests
* Migrate dependency provider tests
* Migrate dependencies container provider tests
* Fix warnings
* Migrate list provider tests
* Migrate dict provider tests
* Migrate callable tests
* Migrate injection tests
* Migrate container provider tests
* Migrate coroutine providers
* Migrate traversal tests
* Migrate resource tests
* Migrate configuration tests
* Migrate provided instance provider tests
* Update doc blocks and imports
* Migrate singleton tests
* Update changelog and cosmetic fixes
2021-10-18 16:19:03 -04:00
Roman Mogylatov
4cc4ca9188
Drop Python 3.4 support ( #518 )
...
* Update gitignore
* Drop Python 3.4 support
* Update change log
* Fix typo in changelog
2021-10-12 12:16:49 -04:00
RK
9cb8e60280
Feature: Context local provider ( #442 )
...
Co-authored-by: Rollo Konig Brock <rollo@b2c2.com>
2021-04-18 21:37:55 -04:00
Roman Mogylatov
f961ff536a
Schemas ( #429 )
...
* Add single container prototype
* Add multiple containers prototype
* Add integration tests
* Implement from_*() methods and add tests
* Prototype inline injections
* Add integration test for inline providers
* Refactor integration tests
* Add integration test for reordered schema
* Remove unused imports from tests
* Refactor schema module
* Update tests to match latest schemas
* Add mypy_boto3_s3 to the test requirements
* Add boto3 to the test requirements
* Add set_provides for Callable, Factory, and Singleton providers
* Fix warnings in tests
* Add typing stubs for Callable, Factory, and Singleton .set_provides() attributes
* Fix singleton children to have optional provides
* Implement provider to provider resolving
* Fix pypy3 tests
* Implement boto3 session use case and add tests
* Implement lazy initialization and improve copying for Callable, Factory, Singleton, and Coroutine providers
* Fix Python 2 tests
* Add region name for boto3 integration example
* Remove f-strings from set_provides()
* Fix schema flake8 errors
* Implement lazy initialization and improve copying for Delegate provider
* Implement lazy initialization and improve copying for Object provider
* Speed up wiring tests
* Implement lazy initialization and improve copying for FactoryAggregate provider
* Implement lazy initialization and improve copying for Selector provider
* Implement lazy initialization and improve copying for Dependency provider
* Implement lazy initialization and improve copying for Resource provider
* Implement lazy initialization and improve copying for Configuration provider
* Implement lazy initialization and improve copying for ProvidedInstance provider
* Implement lazy initialization and improve copying for AttributeGetter provider
* Implement lazy initialization and improve copying for ItemGetter provider
* Implement lazy initialization and improve copying for MethodCaller provder
* Update changelog
* Fix typing in wiring module
* Fix wiring module loader uninstallation issue
* Fix provided instance providers error handing in asynchronous mode
Co-authored-by: Roman Mogylatov <rmk@Romans-MacBook-Pro.local>
2021-03-20 13:16:51 -04:00
Roman Mogylatov
bbbed8972a
Wiring import fixes numpy scipy ( #422 )
...
* Add signature guards
* Fix flake8 errors and update changelog
* Fix slow numpy/scipy installs on pypy3
2021-03-08 16:32:34 -05:00
Roman Mogylatov
d4ebb1b786
Remove unittest2 ( #419 )
...
* Remove unittest2 framework
* Skip a couple of tests on Python 2.7
* Update changelog
2021-03-05 20:17:28 -05:00
Roman Mogylatov
15fa6c301e
Pydantic settings support ( #388 )
...
* Add implementation and basic test
* Add full test coverage + bugfix
* Add test coverage for .from_yaml() method
* Update setup.py, tox and dev requirements
* Stop running pydantic tests on Python 3.5 and below
* Remove pydantic from tox Python < 3.6
* Add example and docs
* Update features block
* Add extra test
* Update changelog
2021-02-03 09:21:32 -05:00
Roman Mogylatov
717f7a0497
Travis CI -> GitHub Actions ( #377 )
...
* Add tests config
* Try run tests on multiple versions
* Add jobs for Python 3.5, 3.6, 3.7
* Add Python 3.4
* Add Python 2.7 job
* Add PyPy and PyPy3 jobs
* Add tests coverage job
* Try to add manual trigger for tests
* Fix coveralls token passing
* Change coverage job name
* Update env sections
* Update run and env sections
* Add COVERALLS_GIT_BRANCH
* Try set branch name
* Set branch name and token
* Update tox.ini to pass env variables
* Update tox.ini
* Re-arrange run actions
* Refactor tests workflow
* Add linters workflow
* Move linters to tests workflow
* Move branch name
* Create common linters job
* Rename tests and linters workflow
* Add pull_request event for tests and linters jobs
* Add publishing workflow
* Try quote asteriks
* Update publishing workflow to publish to test server
* Change publishing workflow name
* Add linux x64 wheels publishing job
* Bump version
* Add publishing wheels on mac and windows
* Fix windows builds
* Refactor to two stages build
* Rename build wheels job
* Add experimental aarch64 builds
* Rename custom archs job
* Add tests & linters to publishing job
* Bump version
* Add docs publishing
* Rename aarch64 job
* Rename aarch64 job
* Revert version change
* Update coveralls job
* Experiment with coveralls
* Experiment with branch name
* Update tox.ini to pass github token
* Update tox.ini to pass all GH vars
* Remove coveralls branch
* Remove travis ci config
2021-01-26 21:11:27 -05:00
Roman Mogylatov
0ab0239d47
Switch Coveralls reporting Travis Job to run on Python 3.9.
2021-01-18 20:56:55 -05:00
Roman Mogylatov
0b7cf3254e
Fix test dependencies
2020-12-05 21:49:54 -05:00
Roman Mogylatov
ec49d56751
Add tests for FastAPI wiring
2020-12-05 21:36:30 -05:00
Roman Mogylatov
47c79b2772
Resources ( #312 )
...
* Add prototype
* Add example
* Remove typing erros in Python 2.7 and 3.4
* Move resources example
* Draft resources docs
* Update resources docs
* Fix repr
* Rename dict provider test
* Add more tests
* Add tests + refactoring
* Add more tests
* Update tests to run only on 3.5+
* Update setup.py
* Add typing tests
* Update changelog
* Fix generator iteration
* Remove contextlib
* Hotfix aiohttp issue
* Move aiohttp fix to tox.ini
* Move aiohttp fix to a different place in tox
2020-10-24 20:56:32 -04:00
Roman Mogylatov
2e940adb50
Typing stubs ( #286 )
...
* Add basic setup
* Add more tests for factory
* Add mypy checks to CI
* Add mypy checks to makefile command
* Add typing for the factories
* Add stub for Callable providers
* Add typing module and object provider stubs
* Fix typing test issue
* Remove typing module
* Add Delegate stub
* Add stub for Dependency provider
* Add stub for ExternalDependency
* Add stubs for providers module functions
* Add stubs for the DependenciesContainer provider
* Add stub for the CallableDelegate provider
* Add stubs for Coroutine providers
* Add stubs for the configuration options
* Add stub for the FactoryDelegate
* Add stub for the FactoryAggregate provider
* Add singleton stubs
* Add stubs for singletons
* Add stub for the List provider
* Add stub for the Container provider
* Add stub for the Selector provider
* Add stubs for the dynamic container
* Add stub for the declarative container
* Add stubs for the extensions
* Add types module for explicit provider typing
* Set absolute import mode for the providers module and add types module test
* Skip typing test for Python 3.5
* Remove coroutine test from py35
* Fix py35 tests
* Add \n to the tox.ini
2020-08-26 22:24:20 -04:00
Roman Mogylatov
ed2fc618f1
Fix coverage
2020-07-28 19:25:02 -04:00
Roman Mogylatov
e0d81c2d28
Aiohttp integration ( #270 )
...
* Add aiohttp extension module
* Add giphynav-aiohttp app
* Add missing docstrings
* Remove print() call
* Remove not needed import from flask extension tests
* Improve coroutine provider tests
* Add aiohttp extension tests
* Update tox.ini
* Add aiohttp extras
* Try fix Python 3.4 tests
* Try fix 3.6 tests
* Stop running coroutine tests for Python 3.4
* Rename tests
* Remove type hints
* Fix pypy and change python version for coverage job to 3.8
* Fix coveralls job
* Try fix Python 3.4, 3.5 tests
* Make coverage job to run 3.5+ tests
* Add tests
* Add readme
* Update the readmes
* Add API docs
* Add API docs page
* Update changelog
2020-07-28 19:19:05 -04:00
Roman Mogylatov
fa469618dd
Readme update ( #263 )
...
* Update README.rst
* Update README.rst
* Update README.rst
* Update README.rst
* Update README.rst
* Update README.rst
* Update README.rst
* Update README.rst
* Update README.rst
* Update README.rst
* Update README.rst
* Update README.rst
* Update README.rst
* Update README.rst
* Update README.rst
* Update README.rst
* Update README.rst
* Update README.rst
* Update README.rst
* Add files via upload
* Update README.rst
* Rename Blank Diagram (1).svg to di-map.svg
* Update README.rst
* Update README.rst
* Update README.rst
* Update README.rst
* Update README.rst
* Update README.rst
* Update README.rst
* Update README.rst
* Add files via upload
* Rename Blank Diagram (2).svg to di-map2.svg
* Update README.rst
* Update README.rst
* Update README.rst
* Update README.rst
* Add files via upload
* Add files via upload
* Rename README.svg to di-map3.svg
* Update README.rst
* Add files via upload
* Rename README - Page 3.svg to di-map4.svg
* Update README.rst
* Add files via upload
* Rename README - Copy of Page 3.svg to di-map5.svg
* Update README.rst
* Delete di-map.svg
* Delete di-map2.svg
* Delete di-map3.svg
* Delete di-map4.svg
* Update README.rst
* Update README.rst
* Add Github Navigator - Flask application
* Do more refactoring for ghnav-flask
* More refactoring
* Update README
* Add tests
* Update readme
* Add Flask extension
* Add Factory.provides attribute
* Add Flask extension module
* User flask extension in githubnavigator example
* Add README for ghnav-flask
* Update ghnav-flask README
* Update ghnav-flask README
* Update README with ghnav container example
* Move ghnav-flask to miniapps/ folder
* Fix auth token reading from env for ghnav-flask
* Update readme
* Fix ghnav-flask linter errors
* Add downloads and wheel badge
* Add tests for flask extension
* Fix flask tests
* Add requirements-ext.txt installation to tox.ini
* Add API docs for ext.flask module
* Update setup.py
* Add Flask to the list of keywords
* Update badges on docs README
* Update docs README title
* Fix ext.flask tests
* Fix syntax of ext.flask for Python 2.7, 3.4, 3.5
* Fix syntax of ext.flask for Python 2.7, 3.4, 3.5
* Fix imports in ext.flask for Python 2.7, 3.4, 3.5
* Update ghfnav-flask README
* Update ghfnav-flask README
* Remove setting of empty github token
* Add flask extras
* Update requirements
* Update requirements
* Add flask extra to python 3.4 tox.ini
* Update changelog
* Update changelog
2020-07-11 12:15:00 -04:00
Roman Mogylatov
e5275cf3f2
Skip yaml testing for on Python 3.4
2020-06-24 21:23:29 -04:00
Roman Mogylatov
c8b0fa22af
Add yaml extras install to tox.ini
2020-06-24 21:07:57 -04:00
Roman Mogylatov
50d8363650
Pin virtualenv to 20.0.23
2020-06-24 17:26:58 -04:00
Roman Mogylatov
52c98bbe49
Comment yaml-related code
2020-06-24 17:16:46 -04:00
Roman Mogylatov
f7871dfc49
Update extras in tox.ini
2020-06-24 16:46:48 -04:00
Roman Mogylatov
a76744805a
Add Configuration.from_yaml method
2020-06-24 16:29:44 -04:00
Roman Mogylatov
06ff4bbbe4
Clean up tox.ini file
2020-01-26 15:15:50 -05:00
Roman Mogylatov
953f93631b
Python 3.8 support ( #241 )
...
* Add Python 3.8 test environment
* Add Python 3.8 classifier
* Update max compatible version of six to 1.13.0
* Update max compatible version of six to 1.14.0
* Add record to the changelog
2020-01-26 15:00:21 -05:00
Roman Mogylatov
9a785de4b5
Coroutine provider ( #206 )
...
* Add coroutine provider examples
* Add coroutine provier
* Update changelog
* Update static analysis travis jobs to python 3.7
* Update coroutine provider implementation for python 3.4
* Update static analysis travis jobs to python 3.6
* Make pycode style happy
* Add tests for coroutine providers
* Make coroutine tests python 2 syntax friendly
* Split tests to python2 and python3
* Refactor coroutine provider tests
* Modify pypy tests running command
* Update coroutine provider docs
2018-10-18 19:39:19 +03:00
Roman Mogilatov
dafd416b95
Set python 2.7 for coveralls
2017-01-30 00:08:06 +02:00
Roman Mogilatov
1edce9a59d
Add python 3.6 and pypy3 to the list of test envs
2017-01-29 23:43:10 +02:00
Roman Mogilatov
82bd1ae843
Clean up
2016-11-03 00:56:30 +02:00
Roman Mogilatov
aac72ed3a3
Clean up and final fixes
2016-11-02 23:55:14 +02:00
Roman Mogilatov
e3408075de
Update repository structure
2016-11-02 22:58:30 +02:00
Roman Mogilatov
8f39ed4957
Update tox.ini
2016-11-02 20:19:04 +02:00
Roman Mogilatov
a7c0a76d14
Update tox ini
2016-11-02 20:12:41 +02:00
Roman Mogilatov
0f1497b282
Add debug to tox
2016-11-02 19:59:27 +02:00
Roman Mogilatov
1a9dd6cca7
One more attempt...
2016-11-02 19:16:55 +02:00
Roman Mogilatov
15d156cdaf
Remove debug output from tox
2016-11-02 19:06:12 +02:00
Roman Mogilatov
fe36a1220e
Try basepython=python
2016-11-02 18:39:57 +02:00
Roman Mogilatov
3bd19a168a
Tune building in debug mode
2016-11-02 18:11:50 +02:00
Roman Mogilatov
c93d1fb8a6
Set python 3.5 for coveralls job
2016-11-02 11:38:07 +02:00
Roman Mogilatov
e5498f214b
Add creation of debug builds
2016-11-01 10:49:44 +02:00
Roman Mogilatov
78f68468ce
Remove dev environment from tox
2016-10-31 00:00:54 +02:00
Roman Mogilatov
71b820487e
Replace pep257 with pydocstyle
2016-02-28 16:01:20 +02:00
Roman Mogilatov
0e5ec6956e
Optimize provider calls
2016-02-08 00:29:41 +02:00
Roman Mogilatov
449a67eede
1.14.0 Drop support of Python 3.2
2016-01-25 15:07:11 +02:00
Roman Mogilatov
4237184767
Add py35 to TOXENVs
2015-10-12 18:13:54 +03:00
Roman Mogilatov
60f48ab3d9
Add tox commands for running tests on py35
2015-10-12 16:51:14 +03:00