FlexMeasures
A platform for building energy flexibility services with forecasting and scheduling, written in Python & offering a USEF-conform API.
https://github.com/FlexMeasures/flexmeasures
Category: Energy Systems
Sub Category: Building Energy Monitoring
Keywords
backend energy energy-data energy-flexibility machine-learning
Keywords from Contributors
horizon sqlalchemy uncertainty battery sustainability
Last synced: about 15 hours ago
JSON representation
Repository metadata
The intelligent & developer-friendly EMS to support real-time energy flexibility apps, rapidly and scalable.
- Host: GitHub
- URL: https://github.com/FlexMeasures/flexmeasures
- Owner: FlexMeasures
- License: apache-2.0
- Created: 2020-12-04T13:11:50.000Z (over 5 years ago)
- Default Branch: main
- Last Pushed: 2026-08-13T14:34:49.000Z (4 days ago)
- Last Synced: 2026-08-13T14:41:55.983Z (4 days ago)
- Topics: backend, energy, energy-data, energy-flexibility, machine-learning
- Language: Python
- Homepage: https://flexmeasures.io
- Size: 23.6 MB
- Stars: 205
- Watchers: 8
- Forks: 55
- Open Issues: 165
- Releases: 81
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Security: SECURITY.md
- Notice: NOTICE
- Agents: AGENTS.md
- Claude: CLAUDE.md
README.md
FlexMeasures is an intelligent EMS (energy management system) to optimize behind-the-meter energy flexibility.
Build your smart energy apps & services with FlexMeasures as backend for real-time orchestration!
In a nutshell, FlexMeasures turns data into optimized schedules for flexible assets like batteries and heat pumps, or for flexible industry processes:

FlexMeasures was created by and continues to be maintained by Seita Energy Flexibility BV in The Netherlands.
The vision of the project is to make sure that smart backend software is available to all parties working with energy flexibility, no matter where they are working on their local energy transition.
Here is why using FlexMeasures is a great idea:
- Developing energy flexibility apps & services (e.g. to enable demand response) is crucial, but expensive.
- FlexMeasures reduces development costs with real-time data intelligence & integrations, uncertainty models and developer support such as API/UI and plugins.
So why optimise the schedules of flexible assets? Because planning ahead allows flexible assets to serve the whole system with their flexibility, e.g. by shifting energy consumption to other times.
For the asset owners, this creates CO₂ savings but also monetary value (e.g. through self-consumption, dynamic tariffs and grid incentives). FlexMeasures thrives to be applicable in cases with multiple sources of value ("value stacking") and multiple types of assets (e.g. home/office/factory).
As possible users, we see energy service companies (ESCOs) who want to build real-time apps & services around energy flexibility for their customers, or medium/large industrials who are looking for support in their internal digital tooling. However, even small companies and hobby projects might find FlexMeasures useful!
How does FlexMeasures enable rapid development of energy flexibility apps?
FlexMeasures is designed to help with three basic needs of developers in the energy flexibility domain:
I need help with integrating real-time data and continuously computing new data
FlexMeasures is designed to make decisions based on data in an automated way. Data pipelining and dedicated machine learning tooling is crucial.
- API/CLI functionality to read in time series data
- Extensions/Plugins for integrating 3rd party data (e.g. from ENTSO-E, OpenWeatherMap/WeatherAPI) or protocols (e.g. OpenADR)
- Forecasting for the upcoming hours
- Schedule optimization for flexible assets
It's hard to correctly model data with different sources, resolutions, horizons and even uncertainties
Much developer time is spent correcting data and treating it correctly, so that you know you are computing on the right knowledge.
FlexMeasures is built on the timely-beliefs framework, so we model this real-world aspect accurately:
- Expected data properties are explicit (e.g. unit, time resolution)
- Incoming data is converted to fitting unit and time resolution automatically
- FlexMeasures also stores who thought that something happened (or that it will happen), and when they thought so
- Uncertainty can be modelled (useful for forecasting)
I want to build new features quickly, not spend days solving basic problems
Building customer-facing apps & services is where developers make impact. We make their work easy.
- FlexMeasures has well-documented API endpoints and CLI commands to interact with its model and data
- You can extend it easily with your own logic by writing plugins
- A backend UI shows you your assets in maps and your data in plots (try the Replay button!). There is also support for plots to be available per API, for integration in your own frontend
- Multi-tenancy ― model multiple accounts on one server. Data is only seen/editable by authorized users in the right account
Getting started
Head over to our documentation, e.g. the getting-started guide or the 5-minute tutorial. Or find more information on FlexMeasures.io.
See also Seita's Github profile, e.g. for FlexMeasures plugin examples.
Development & community
FlexMeasures is available under the permissive Apache2.0 licence and it is an incubation project at the Linux Energy Foundation.
Within the FlexMeasures project, we welcome contributions. A list of contributing organizations:
- Seita Energy Flexibility (NL, maintainer)
- Thiink (US)
- ELaad (NL)
- LUO (BE)
You can also learn more about our governance.
You can connect with the community here on GitHub (e.g. by creating an issue), on the FlexMeasures channel within the LF Energy Slack, on the mailing list or by contacting the current maintainers.
Owner metadata
- Name: FlexMeasures
- Login: FlexMeasures
- Email: flexmeasures@lists.lfenergy.org
- Kind: organization
- Description: FlexMeasures is the smart EMS for energy flexibility applications. An incubation project at the Linux Energy Foundation.
- Website: https://flexmeasures.io
- Location:
- Twitter:
- Company:
- Icon url: https://avatars.githubusercontent.com/u/75485874?v=4
- Repositories: 9
- Last ynced at: 2024-05-02T08:19:00.456Z
- Profile URL: https://github.com/FlexMeasures
GitHub Events
Total
- Create event: 369
- Commit comment event: 5
- Release event: 7
- Delete event: 333
- Pull request event: 575
- Fork event: 8
- Issues event: 441
- Watch event: 28
- Issue comment event: 1032
- Push event: 2600
- Pull request review comment event: 1196
- Pull request review event: 1326
Last Year
- Create event: 148
- Commit comment event: 1
- Release event: 2
- Delete event: 162
- Pull request event: 223
- Fork event: 2
- Issues event: 166
- Watch event: 5
- Issue comment event: 342
- Push event: 1345
- Pull request review comment event: 454
- Pull request review event: 449
Committers metadata
Last synced: 1 day ago
Total Commits: 1,927
Total Committers: 36
Avg Commits per committer: 53.528
Development Distribution Score (DDS): 0.572
Commits in past year: 445
Committers in past year: 16
Avg Commits per committer in past year: 27.813
Development Distribution Score (DDS) in past year: 0.58
| Name | Commits | |
|---|---|---|
| Felix Claessen | 3****x | 825 |
| Nicolas Höning | n****s@s****l | 634 |
| Victor | v****r@s****l | 91 |
| JDev | 4****y | 90 |
| Mohamed Belhsan Hmida | 1****a | 48 |
| Copilot | 1****t | 43 |
| Ahmad Wahid | 5****d | 42 |
| Muhammad-Moiz626 | m****3@g****m | 39 |
| create-issue-branch[bot] | 5****] | 35 |
| GustaafL | 4****L | 17 |
| nrozanov | 5****v | 16 |
| Nischay Mamidi | 1****o | 9 |
| Sankalp Thakur | 3****r | 5 |
| Ragnar-the-mighty | 1****y | 5 |
| dependabot[bot] | 4****] | 3 |
| Kevin Wang | 3****t | 2 |
| Tammevesky | t****7@g****m | 2 |
| Mark Purcell | 7****b | 2 |
| Felix Claessen | 3****x | 2 |
| Nicolas Höning | n****g@d****m | 1 |
| Lego Las | l****m@g****m | 1 |
| Bobby Drake | b****e@s****l | 1 |
| Devansh Sharma | 4****7 | 1 |
| Lenox Brown | 1****x | 1 |
| Pratik Raj | R****1@g****m | 1 |
| Sanjay Santhanam | 5****2 | 1 |
| Seagyn Davis | s****n@g****m | 1 |
| Serhii | j****z@m****m | 1 |
| Stijn van Houwelingen | t****r@p****e | 1 |
| Taran | 7****u | 1 |
| and 6 more... | ||
Committer domains:
- seita.nl: 2
- ecofixgp.be: 1
- beralt.com: 1
- proton.me: 1
- me.com: 1
- softwear.nl: 1
- digib.com: 1
Issue and Pull Request metadata
Last synced: 1 day ago
Total issues: 729
Total pull requests: 1,537
Average time to close issues: 7 months
Average time to close pull requests: 13 days
Total issue authors: 35
Total pull request authors: 37
Average comments per issue: 1.35
Average comments per pull request: 1.81
Merged pull request: 1,238
Bot issues: 0
Bot pull requests: 46
Past year issues: 117
Past year pull requests: 253
Past year average time to close issues: 2 months
Past year average time to close pull requests: 16 days
Past year issue authors: 11
Past year pull request authors: 14
Past year average comments per issue: 1.09
Past year average comments per pull request: 2.41
Past year merged pull request: 144
Past year bot issues: 0
Past year bot pull requests: 1
Top Issue Authors
- nhoening (318)
- Flix6x (245)
- victorgarcia98 (33)
- BelhsanHmida (33)
- joshuaunity (19)
- Ragnar-the-mighty (11)
- Ahmad-Wahid (10)
- ArdJonker (9)
- nrozanov (7)
- GustaafL (7)
- beralt85 (3)
- GertjanManenschijn (2)
- anirudh-ramesh (2)
- rhpijnacker (2)
- timebis (2)
Top Pull Request Authors
- Flix6x (601)
- nhoening (299)
- victorgarcia98 (148)
- joshuaunity (124)
- Muhammad-Moiz626 (69)
- Ahmad-Wahid (66)
- BelhsanHmida (51)
- create-issue-branch[bot] (39)
- nrozanov (28)
- GustaafL (24)
- Copilot (22)
- Nischay-Pro (10)
- Tammevesky (8)
- sankalpsthakur (7)
- dependabot[bot] (6)
Top Issue Labels
- UI (129)
- bug (99)
- Scheduling (68)
- API (64)
- documentation (58)
- Data (51)
- good first issue (45)
- CLI (43)
- Continuous Integration (27)
- enhancement (20)
- security (15)
- Forecasting (13)
- dependency-hygiene (10)
- development (10)
- refactoring (9)
- Auth (8)
- multi-tenancy (7)
- Reporting (7)
- Plugin support (6)
- Service/Support tooling (5)
- installation (5)
- macOS (4)
- deprecation (4)
- upgrading (3)
- Story:RelaxStorageConstraints (3)
- jobs (3)
- users (2)
- white-labeling (2)
- help wanted (1)
- python (1)
Top Pull Request Labels
- UI (294)
- bug (207)
- Scheduling (151)
- documentation (135)
- API (129)
- CLI (111)
- Data (99)
- Still Needs Changelog Entry (55)
- dependency-hygiene (43)
- Reporting (40)
- Continuous Integration (39)
- enhancement (37)
- refactoring (27)
- Plugin support (26)
- deprecation (24)
- development (23)
- jobs (20)
- security (19)
- Units (18)
- Auth (15)
- Still Needs Manual Backport (15)
- installation (13)
- multi-tenancy (12)
- Forecasting (12)
- upgrading (9)
- AI Infra (9)
- Feature (5)
- good first issue (5)
- dependencies (4)
- monitoring (3)
Package metadata
- Total packages: 3
-
Total downloads:
- pypi: 594 last-month
- Total dependent packages: 0 (may contain duplicates)
- Total dependent repositories: 2 (may contain duplicates)
- Total versions: 283
- Total maintainers: 2
proxy.golang.org: github.com/FlexMeasures/flexmeasures
- Homepage:
- Documentation: https://pkg.go.dev/github.com/FlexMeasures/flexmeasures#section-documentation
- Licenses: apache-2.0
- Latest release: v0.33.1 (published about 1 month ago)
- Last Synced: 2026-08-15T14:34:27.322Z (1 day ago)
- Versions: 78
- Dependent Packages: 0
- Dependent Repositories: 0
-
Rankings:
- Dependent packages count: 5.395%
- Average: 5.576%
- Dependent repos count: 5.758%
proxy.golang.org: github.com/flexmeasures/flexmeasures
- Homepage:
- Documentation: https://pkg.go.dev/github.com/flexmeasures/flexmeasures#section-documentation
- Licenses: apache-2.0
- Latest release: v0.33.1 (published about 1 month ago)
- Last Synced: 2026-08-15T14:42:13.165Z (1 day ago)
- Versions: 78
- Dependent Packages: 0
- Dependent Repositories: 0
-
Rankings:
- Dependent packages count: 5.395%
- Average: 5.576%
- Dependent repos count: 5.758%
pypi.org: flexmeasures
The *FlexMeasures Platform* is the intelligent backend to support real-time energy flexibility apps, rapidly and scalable.
- Homepage: https://flexmeasures.io
- Documentation: https://flexmeasures.readthedocs.io/
- Licenses: Apache-2.0
- Latest release: 0.33.1 (published about 1 month ago)
- Last Synced: 2026-08-15T14:34:27.180Z (1 day ago)
- Versions: 127
- Dependent Packages: 0
- Dependent Repositories: 2
- Downloads: 594 Last month
-
Rankings:
- Stargazers count: 6.504%
- Forks count: 7.787%
- Average: 8.997%
- Downloads: 9.046%
- Dependent packages count: 10.112%
- Dependent repos count: 11.539%
- Maintainers (2)
Dependencies
- actions/checkout v2 composite
- lewagon/wait-on-check-action v0.2 composite
- shimataro/ssh-key-action v2 composite
- actions/cache v2 composite
- actions/checkout v2 composite
- actions/setup-python v2 composite
- pre-commit/action v2.0.0 composite
- postgres 12.5 docker
- ubuntu focal build
- postgres latest
- redis latest
- Flask-Classful *
- Flask-Cors *
- Flask-Login *
- Flask-Mail *
- Flask-Marshmallow *
- Flask-Migrate *
- Flask-SQLAlchemy >=2.4.3
- Flask-SSLify *
- Flask-Security-Too >=4.0
- Flask-WTF *
- Flask_JSON *
- altair *
- bcrypt *
- bokeh ==1.0.4
- click *
- colour *
- email_validator *
- flask >=1.0
- humanize *
- importlib_metadata *
- inflect *
- inflection *
- iso8601 *
- isodate *
- marshmallow >=3
- marshmallow-polyfield *
- marshmallow-sqlalchemy >=0.23.1
- numpy *
- pandas *
- pandas-bokeh ==0.4.3
- pint >=0.19.1
- pscript *
- psycopg2-binary *
- py-moneyed *
- pyomo >=5.6
- python-dotenv *
- pytz *
- redis <4.2.0
- rq *
- rq-dashboard *
- rq-win *
- sentry-sdk *
- sqlalchemy >=1.4.0
- tabulate *
- timely-beliefs >=1.11.5
- timetomodel >=0.7.1
- tldextract *
- uniplot *
- webargs *
- workalendar *
- xlrd *
- black ==22.3.0
- flake8 ==4.0.1
- flake8-blind-except *
- mypy *
- pre-commit *
- pytest-runner *
- setuptools_scm *
- watchdog *
- sphinx *
- sphinx-rtd-theme *
- sphinx-tabs *
- sphinx_copybutton *
- sphinx_fontawesome *
- sphinxcontrib.httpdomain *
- fakeredis *
- lupa *
- pytest *
- pytest-cov *
- pytest-flask *
- pytest-sugar *
- requests *
- requests_mock *
- black ==22.3.0 development
- cfgv ==3.3.1 development
- click ==8.1.3 development
- distlib ==0.3.6 development
- filelock ==3.12.2 development
- flake8 ==4.0.1 development
- flake8-blind-except ==0.2.1 development
- identify ==2.5.24 development
- mccabe ==0.6.1 development
- mypy ==1.4.1 development
- mypy-extensions ==1.0.0 development
- nodeenv ==1.8.0 development
- packaging ==23.1 development
- pathspec ==0.11.1 development
- platformdirs ==3.8.0 development
- pre-commit ==3.3.3 development
- pycodestyle ==2.8.0 development
- pyflakes ==2.4.0 development
- pyinstrument ==4.5.0 development
- pytest-runner ==6.0.0 development
- pyyaml ==6.0.1 development
- setuptools-scm ==7.1.0 development
- tomli ==2.0.1 development
- typing-extensions ==4.7.0 development
- virtualenv ==20.23.1 development
- watchdog ==3.0.0 development
- actions/checkout v3 composite
- postgres latest docker
- 109 dependencies
- black ==22.3.0 development
- cfgv ==3.4.0 development
- click ==8.1.7 development
- distlib ==0.3.7 development
- filelock ==3.12.2 development
- flake8 ==4.0.1 development
- flake8-blind-except ==0.2.1 development
- identify ==2.5.27 development
- mccabe ==0.6.1 development
- mypy ==1.5.1 development
- mypy-extensions ==1.0.0 development
- nodeenv ==1.8.0 development
- packaging ==23.1 development
- pathspec ==0.11.2 development
- platformdirs ==3.10.0 development
- pre-commit ==3.3.3 development
- pycodestyle ==2.8.0 development
- pyflakes ==2.4.0 development
- pyinstrument ==4.5.1 development
- pytest-runner ==6.0.0 development
- pyyaml ==6.0.1 development
- setuptools-scm ==7.1.0 development
- tomli ==2.0.1 development
- typing-extensions ==4.7.1 development
- virtualenv ==20.24.3 development
- watchdog ==3.0.0 development
- alabaster ==0.7.13
- babel ==2.12.1
- certifi ==2023.7.22
- charset-normalizer ==3.2.0
- docutils ==0.18.1
- idna ==3.4
- imagesize ==1.4.1
- jinja2 ==3.1.2
- markupsafe ==2.1.3
- packaging ==23.1
- pygments ==2.16.1
- requests ==2.31.0
- six ==1.16.0
- snowballstemmer ==2.2.0
- sphinx ==7.2.2
- sphinx-copybutton ==0.5.2
- sphinx-fontawesome ==0.0.6
- sphinx-rtd-theme ==1.3.0
- sphinx-tabs ==3.4.1
- sphinxcontrib-applehelp ==1.0.7
- sphinxcontrib-devhelp ==1.0.5
- sphinxcontrib-htmlhelp ==2.0.4
- sphinxcontrib-httpdomain ==1.8.1
- sphinxcontrib-jquery ==4.1
- sphinxcontrib-jsmath ==1.0.1
- sphinxcontrib-qthelp ==1.0.6
- sphinxcontrib-serializinghtml ==1.1.9
- urllib3 ==2.0.4
- async-timeout ==4.0.3 test
- certifi ==2023.7.22 test
- charset-normalizer ==3.2.0 test
- click ==8.1.7 test
- coverage ==7.3.0 test
- exceptiongroup ==1.1.3 test
- fakeredis ==2.18.0 test
- flask ==2.1.2 test
- highspy ==1.5.3 test
- idna ==3.4 test
- iniconfig ==2.0.0 test
- itsdangerous ==2.1.2 test
- jinja2 ==3.1.2 test
- lupa ==2.0 test
- markupsafe ==2.1.3 test
- packaging ==23.1 test
- pluggy ==1.2.0 test
- pytest ==7.4.0 test
- pytest-cov ==4.1.0 test
- pytest-flask ==1.2.0 test
- pytest-sugar ==0.9.7 test
- redis ==4.6.0 test
- requests ==2.31.0 test
- requests-mock ==1.11.0 test
- six ==1.16.0 test
- sortedcontainers ==2.4.0 test
- termcolor ==2.3.0 test
- tomli ==2.0.1 test
- urllib3 ==2.0.4 test
- werkzeug ==2.1.0 test
- 109 dependencies
- black ==22.3.0 development
- cfgv ==3.4.0 development
- click ==8.1.7 development
- distlib ==0.3.7 development
- filelock ==3.12.2 development
- flake8 ==4.0.1 development
- flake8-blind-except ==0.2.1 development
- identify ==2.5.27 development
- mccabe ==0.6.1 development
- mypy ==1.5.1 development
- mypy-extensions ==1.0.0 development
- nodeenv ==1.8.0 development
- packaging ==23.1 development
- pathspec ==0.11.2 development
- platformdirs ==3.10.0 development
- pre-commit ==3.3.3 development
- pycodestyle ==2.8.0 development
- pyflakes ==2.4.0 development
- pyinstrument ==4.5.1 development
- pytest-runner ==6.0.0 development
- pyyaml ==6.0.1 development
- setuptools-scm ==7.1.0 development
- typing-extensions ==4.7.1 development
- virtualenv ==20.24.3 development
- watchdog ==3.0.0 development
- alabaster ==0.7.13
- babel ==2.12.1
- certifi ==2023.7.22
- charset-normalizer ==3.2.0
- docutils ==0.18.1
- idna ==3.4
- imagesize ==1.4.1
- jinja2 ==3.1.2
- markupsafe ==2.1.3
- packaging ==23.1
- pygments ==2.16.1
- requests ==2.31.0
- six ==1.16.0
- snowballstemmer ==2.2.0
- sphinx ==7.2.2
- sphinx-copybutton ==0.5.2
- sphinx-fontawesome ==0.0.6
- sphinx-rtd-theme ==1.3.0
- sphinx-tabs ==3.4.1
- sphinxcontrib-applehelp ==1.0.7
- sphinxcontrib-devhelp ==1.0.5
- sphinxcontrib-htmlhelp ==2.0.4
- sphinxcontrib-httpdomain ==1.8.1
- sphinxcontrib-jquery ==4.1
- sphinxcontrib-jsmath ==1.0.1
- sphinxcontrib-qthelp ==1.0.6
- sphinxcontrib-serializinghtml ==1.1.9
- urllib3 ==2.0.4
- certifi ==2023.7.22 test
- charset-normalizer ==3.2.0 test
- click ==8.1.7 test
- coverage ==7.3.0 test
- fakeredis ==2.18.0 test
- flask ==2.1.2 test
- highspy ==1.5.3 test
- idna ==3.4 test
- iniconfig ==2.0.0 test
- itsdangerous ==2.1.2 test
- jinja2 ==3.1.2 test
- lupa ==2.0 test
- markupsafe ==2.1.3 test
- packaging ==23.1 test
- pluggy ==1.2.0 test
- pytest ==7.4.0 test
- pytest-cov ==4.1.0 test
- pytest-flask ==1.2.0 test
- pytest-sugar ==0.9.7 test
- redis ==4.6.0 test
- requests ==2.31.0 test
- requests-mock ==1.11.0 test
- six ==1.16.0 test
- sortedcontainers ==2.4.0 test
- termcolor ==2.3.0 test
- urllib3 ==2.0.4 test
- werkzeug ==2.1.0 test
- 112 dependencies
- alabaster ==0.7.13
- babel ==2.12.1
- certifi ==2023.7.22
- charset-normalizer ==3.1.0
- docutils ==0.18.1
- idna ==3.4
- imagesize ==1.4.1
- importlib-metadata ==6.7.0
- jinja2 ==3.1.2
- markupsafe ==2.1.3
- packaging ==23.1
- pygments ==2.15.1
- pytz ==2023.3
- requests ==2.31.0
- six ==1.16.0
- snowballstemmer ==2.2.0
- sphinx ==6.2.1
- sphinx-copybutton ==0.5.2
- sphinx-fontawesome ==0.0.6
- sphinx-rtd-theme ==1.2.2
- sphinx-tabs ==3.4.1
- sphinxcontrib-applehelp ==1.0.4
- sphinxcontrib-devhelp ==1.0.2
- sphinxcontrib-htmlhelp ==2.0.1
- sphinxcontrib-httpdomain ==1.8.1
- sphinxcontrib-jquery ==4.1
- sphinxcontrib-jsmath ==1.0.1
- sphinxcontrib-qthelp ==1.0.3
- sphinxcontrib-serializinghtml ==1.1.5
- urllib3 ==2.0.3
- zipp ==3.15.0
- async-timeout ==4.0.2 test
- certifi ==2023.7.22 test
- charset-normalizer ==3.1.0 test
- click ==8.1.3 test
- coverage ==7.2.7 test
- exceptiongroup ==1.1.1 test
- fakeredis ==2.15.0 test
- flask ==2.1.2 test
- highspy ==1.5.3 test
- idna ==3.4 test
- importlib-metadata ==6.7.0 test
- iniconfig ==2.0.0 test
- itsdangerous ==2.1.2 test
- jinja2 ==3.1.2 test
- lupa ==2.0 test
- markupsafe ==2.1.3 test
- packaging ==23.1 test
- pluggy ==1.2.0 test
- pytest ==7.4.0 test
- pytest-cov ==4.1.0 test
- pytest-flask ==1.2.0 test
- pytest-sugar ==0.9.7 test
- redis ==4.6.0 test
- requests ==2.31.0 test
- requests-mock ==1.11.0 test
- six ==1.16.0 test
- sortedcontainers ==2.4.0 test
- termcolor ==2.3.0 test
- tomli ==2.0.1 test
- urllib3 ==2.0.3 test
- werkzeug ==2.1.0 test
- zipp ==3.15.0 test
- 113 dependencies
- black ==22.3.0 development
- cfgv ==3.3.1 development
- click ==8.1.6 development
- distlib ==0.3.7 development
- filelock ==3.12.2 development
- flake8 ==4.0.1 development
- flake8-blind-except ==0.2.1 development
- identify ==2.5.26 development
- mccabe ==0.6.1 development
- mypy ==1.5.0 development
- mypy-extensions ==1.0.0 development
- nodeenv ==1.8.0 development
- packaging ==23.1 development
- pathspec ==0.11.2 development
- platformdirs ==3.10.0 development
- pre-commit ==3.3.3 development
- pycodestyle ==2.8.0 development
- pyflakes ==2.4.0 development
- pyinstrument ==4.5.1 development
- pytest-runner ==6.0.0 development
- pyyaml ==6.0.1 development
- setuptools-scm ==7.1.0 development
- tomli ==2.0.1 development
- typing-extensions ==4.7.1 development
- virtualenv ==20.24.2 development
- watchdog ==3.0.0 development
- alabaster ==0.7.13
- babel ==2.12.1
- certifi ==2023.7.22
- charset-normalizer ==3.2.0
- docutils ==0.18.1
- idna ==3.4
- imagesize ==1.4.1
- importlib-metadata ==6.8.0
- jinja2 ==3.1.2
- markupsafe ==2.1.3
- packaging ==23.1
- pygments ==2.16.1
- requests ==2.31.0
- six ==1.16.0
- snowballstemmer ==2.2.0
- sphinx ==6.2.1
- sphinx-copybutton ==0.5.2
- sphinx-fontawesome ==0.0.6
- sphinx-rtd-theme ==1.2.2
- sphinx-tabs ==3.4.1
- sphinxcontrib-applehelp ==1.0.6
- sphinxcontrib-devhelp ==1.0.4
- sphinxcontrib-htmlhelp ==2.0.3
- sphinxcontrib-httpdomain ==1.8.1
- sphinxcontrib-jquery ==4.1
- sphinxcontrib-jsmath ==1.0.1
- sphinxcontrib-qthelp ==1.0.5
- sphinxcontrib-serializinghtml ==1.1.7
- urllib3 ==2.0.4
- zipp ==3.16.2
- async-timeout ==4.0.3 test
- certifi ==2023.7.22 test
- charset-normalizer ==3.2.0 test
- click ==8.1.6 test
- coverage ==7.2.7 test
- exceptiongroup ==1.1.2 test
- fakeredis ==2.17.0 test
- flask ==2.1.2 test
- highspy ==1.5.3 test
- idna ==3.4 test
- importlib-metadata ==6.8.0 test
- iniconfig ==2.0.0 test
- itsdangerous ==2.1.2 test
- jinja2 ==3.1.2 test
- lupa ==2.0 test
- markupsafe ==2.1.3 test
- packaging ==23.1 test
- pluggy ==1.2.0 test
- pytest ==7.4.0 test
- pytest-cov ==4.1.0 test
- pytest-flask ==1.2.0 test
- pytest-sugar ==0.9.7 test
- redis ==4.6.0 test
- requests ==2.31.0 test
- requests-mock ==1.11.0 test
- six ==1.16.0 test
- sortedcontainers ==2.4.0 test
- termcolor ==2.3.0 test
- tomli ==2.0.1 test
- urllib3 ==2.0.4 test
- werkzeug ==2.1.0 test
- zipp ==3.16.2 test
Score: 15.890612698045011