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

feat: split the main modules into multiple modules - DIA-61984 #106

Merged
merged 3 commits into from
Nov 1, 2023

Conversation

arththebird
Copy link
Contributor

@arththebird arththebird commented Nov 1, 2023

Description

Split the main sqla and asyncio_support modules into multiple smaller modules with their own purpose. This should help properly separate concerns instead of having everything bundled together. This change shouldn't cause any issue since we expect people to import the classes and objects from the root module like from fastapi_sqla import Session.

Additional details

  • Pagination code now lives in pagination.py and async_pagination.py
  • The Base model is now part of models.py
  • asyncio_support.py was renamed to async_sqla.py since it's not containing all the async code anymore, and because it makes more sense with the addition of async_pagination.py. It shows in a better way that it's the async version of the sqla module.
  • The setup function was moved to base.py so that the __init__.py file only contains imports of what we want to expose from the root module. This uses a similar design as the pydantic or fastapi packages.

Related JIRA issues

Validation

No code change, only moving things around. Tests still pass with minimal changes.

Copy link

codecov bot commented Nov 1, 2023

Codecov Report

All modified and coverable lines are covered by tests ✅

Comparison is base (b452435) 100.00% compared to head (954cf21) 100.00%.
Report is 1 commits behind head on master.

Additional details and impacted files
@@            Coverage Diff            @@
##            master      #106   +/-   ##
=========================================
  Coverage   100.00%   100.00%           
=========================================
  Files            7        10    +3     
  Lines          404       420   +16     
  Branches        56        56           
=========================================
+ Hits           404       420   +16     
Flag Coverage Δ
python_version3.10-sqlalchemy1.4-pydantic1.10-asyncpg-aws_rds_iam 97.14% <99.27%> (+0.11%) ⬆️
python_version3.10-sqlalchemy1.4-pydantic1.10-asyncpg-noaws_rds_iam 95.23% <99.27%> (+0.18%) ⬆️
python_version3.10-sqlalchemy1.4-pydantic1.10-noasyncpg-aws_rds_iam 78.80% <81.75%> (+0.83%) ⬆️
python_version3.10-sqlalchemy1.4-pydantic1.10-noasyncpg-noaws_rds_iam 76.90% <81.75%> (+0.91%) ⬆️
python_version3.10-sqlalchemy1.4-pydantic2.0-asyncpg-aws_rds_iam 97.14% <99.27%> (+0.11%) ⬆️
python_version3.10-sqlalchemy1.4-pydantic2.0-asyncpg-noaws_rds_iam 95.23% <99.27%> (+0.18%) ⬆️
python_version3.10-sqlalchemy1.4-pydantic2.0-noasyncpg-aws_rds_iam 78.80% <81.75%> (+0.83%) ⬆️
python_version3.10-sqlalchemy1.4-pydantic2.0-noasyncpg-noaws_rds_iam 76.90% <81.75%> (+0.91%) ⬆️
python_version3.10-sqlalchemy1.4-pydantic2.1-asyncpg-aws_rds_iam 97.14% <99.27%> (+0.11%) ⬆️
python_version3.10-sqlalchemy1.4-pydantic2.1-asyncpg-noaws_rds_iam 95.23% <99.27%> (+0.18%) ⬆️
python_version3.10-sqlalchemy1.4-pydantic2.1-noasyncpg-aws_rds_iam 78.80% <81.75%> (+0.83%) ⬆️
python_version3.10-sqlalchemy1.4-pydantic2.1-noasyncpg-noaws_rds_iam 76.90% <81.75%> (+0.91%) ⬆️
python_version3.10-sqlalchemy2.0-pydantic1.10-asyncpg-aws_rds_iam 96.42% <97.08%> (+0.14%) ⬆️
python_version3.10-sqlalchemy2.0-pydantic1.10-asyncpg-noaws_rds_iam 94.52% <97.08%> (+0.21%) ⬆️
python_version3.10-sqlalchemy2.0-pydantic1.10-noasyncpg-aws_rds_iam 78.09% <79.56%> (+0.86%) ⬆️
python_version3.10-sqlalchemy2.0-pydantic1.10-noasyncpg-noaws_rds_iam 76.19% <79.56%> (+0.94%) ⬆️
python_version3.10-sqlalchemy2.0-pydantic2.0-asyncpg-aws_rds_iam 96.42% <97.08%> (+0.14%) ⬆️
python_version3.10-sqlalchemy2.0-pydantic2.0-asyncpg-noaws_rds_iam 94.52% <97.08%> (+0.21%) ⬆️
python_version3.10-sqlalchemy2.0-pydantic2.0-noasyncpg-aws_rds_iam 78.09% <79.56%> (+0.86%) ⬆️
python_version3.10-sqlalchemy2.0-pydantic2.0-noasyncpg-noaws_rds_iam 76.19% <79.56%> (+0.94%) ⬆️
python_version3.10-sqlalchemy2.0-pydantic2.1-asyncpg-aws_rds_iam 96.42% <97.08%> (+0.14%) ⬆️
python_version3.10-sqlalchemy2.0-pydantic2.1-asyncpg-noaws_rds_iam 94.52% <97.08%> (+0.21%) ⬆️
python_version3.10-sqlalchemy2.0-pydantic2.1-noasyncpg-aws_rds_iam 78.09% <79.56%> (+0.86%) ⬆️
python_version3.10-sqlalchemy2.0-pydantic2.1-noasyncpg-noaws_rds_iam 76.19% <79.56%> (+0.94%) ⬆️
python_version3.11-sqlalchemy1.4-pydantic1.10-asyncpg-aws_rds_iam 97.14% <99.27%> (+0.11%) ⬆️
python_version3.11-sqlalchemy1.4-pydantic1.10-asyncpg-noaws_rds_iam 95.23% <99.27%> (+0.18%) ⬆️
python_version3.11-sqlalchemy1.4-pydantic1.10-noasyncpg-aws_rds_iam 78.80% <81.75%> (+0.83%) ⬆️
python_version3.11-sqlalchemy1.4-pydantic1.10-noasyncpg-noaws_rds_iam 76.90% <81.75%> (+0.91%) ⬆️
python_version3.11-sqlalchemy1.4-pydantic2.0-asyncpg-aws_rds_iam 97.14% <99.27%> (+0.11%) ⬆️
python_version3.11-sqlalchemy1.4-pydantic2.0-asyncpg-noaws_rds_iam 95.23% <99.27%> (+0.18%) ⬆️
python_version3.11-sqlalchemy1.4-pydantic2.0-noasyncpg-aws_rds_iam 78.80% <81.75%> (+0.83%) ⬆️
python_version3.11-sqlalchemy1.4-pydantic2.0-noasyncpg-noaws_rds_iam 76.90% <81.75%> (+0.91%) ⬆️
python_version3.11-sqlalchemy1.4-pydantic2.1-asyncpg-aws_rds_iam 97.14% <99.27%> (+0.11%) ⬆️
python_version3.11-sqlalchemy1.4-pydantic2.1-asyncpg-noaws_rds_iam 95.23% <99.27%> (+0.18%) ⬆️
python_version3.11-sqlalchemy1.4-pydantic2.1-noasyncpg-aws_rds_iam 78.80% <81.75%> (+0.83%) ⬆️
python_version3.11-sqlalchemy1.4-pydantic2.1-noasyncpg-noaws_rds_iam 76.90% <81.75%> (+0.91%) ⬆️
python_version3.11-sqlalchemy2.0-pydantic1.10-asyncpg-aws_rds_iam 96.42% <97.08%> (+0.14%) ⬆️
python_version3.11-sqlalchemy2.0-pydantic1.10-asyncpg-noaws_rds_iam 94.52% <97.08%> (+0.21%) ⬆️
python_version3.11-sqlalchemy2.0-pydantic1.10-noasyncpg-aws_rds_iam 78.09% <79.56%> (+0.86%) ⬆️
python_version3.11-sqlalchemy2.0-pydantic1.10-noasyncpg-noaws_rds_iam 76.19% <79.56%> (+0.94%) ⬆️
python_version3.11-sqlalchemy2.0-pydantic2.0-asyncpg-aws_rds_iam 96.42% <97.08%> (+0.14%) ⬆️
python_version3.11-sqlalchemy2.0-pydantic2.0-asyncpg-noaws_rds_iam 94.52% <97.08%> (+0.21%) ⬆️
python_version3.11-sqlalchemy2.0-pydantic2.0-noasyncpg-aws_rds_iam 78.09% <79.56%> (+0.86%) ⬆️
python_version3.11-sqlalchemy2.0-pydantic2.0-noasyncpg-noaws_rds_iam 76.19% <79.56%> (+0.94%) ⬆️
python_version3.11-sqlalchemy2.0-pydantic2.1-asyncpg-aws_rds_iam 96.42% <97.08%> (+0.14%) ⬆️
python_version3.11-sqlalchemy2.0-pydantic2.1-asyncpg-noaws_rds_iam 94.52% <97.08%> (+0.21%) ⬆️
python_version3.11-sqlalchemy2.0-pydantic2.1-noasyncpg-aws_rds_iam 78.09% <79.56%> (+0.86%) ⬆️
python_version3.11-sqlalchemy2.0-pydantic2.1-noasyncpg-noaws_rds_iam 76.19% <79.56%> (+0.94%) ⬆️
python_version3.9-sqlalchemy1.4-pydantic1.10-asyncpg-aws_rds_iam 97.14% <99.27%> (+0.11%) ⬆️
python_version3.9-sqlalchemy1.4-pydantic1.10-asyncpg-noaws_rds_iam 95.23% <99.27%> (+0.18%) ⬆️
python_version3.9-sqlalchemy1.4-pydantic1.10-noasyncpg-aws_rds_iam 78.80% <81.75%> (+0.83%) ⬆️
python_version3.9-sqlalchemy1.4-pydantic1.10-noasyncpg-noaws_rds_iam 76.90% <81.75%> (+0.91%) ⬆️
python_version3.9-sqlalchemy1.4-pydantic2.0-asyncpg-aws_rds_iam 97.14% <99.27%> (+0.11%) ⬆️
python_version3.9-sqlalchemy1.4-pydantic2.0-asyncpg-noaws_rds_iam 95.23% <99.27%> (+0.18%) ⬆️
python_version3.9-sqlalchemy1.4-pydantic2.0-noasyncpg-aws_rds_iam 78.80% <81.75%> (+0.83%) ⬆️
python_version3.9-sqlalchemy1.4-pydantic2.0-noasyncpg-noaws_rds_iam 76.90% <81.75%> (+0.91%) ⬆️
python_version3.9-sqlalchemy1.4-pydantic2.1-asyncpg-aws_rds_iam 97.14% <99.27%> (+0.11%) ⬆️
python_version3.9-sqlalchemy1.4-pydantic2.1-asyncpg-noaws_rds_iam 95.23% <99.27%> (+0.18%) ⬆️
python_version3.9-sqlalchemy1.4-pydantic2.1-noasyncpg-aws_rds_iam 78.80% <81.75%> (+0.83%) ⬆️
python_version3.9-sqlalchemy1.4-pydantic2.1-noasyncpg-noaws_rds_iam 76.90% <81.75%> (+0.91%) ⬆️
python_version3.9-sqlalchemy2.0-pydantic1.10-asyncpg-aws_rds_iam 96.42% <97.08%> (+0.14%) ⬆️
python_version3.9-sqlalchemy2.0-pydantic1.10-asyncpg-noaws_rds_iam 94.52% <97.08%> (+0.21%) ⬆️
python_version3.9-sqlalchemy2.0-pydantic1.10-noasyncpg-aws_rds_iam 78.09% <79.56%> (+0.86%) ⬆️
python_version3.9-sqlalchemy2.0-pydantic1.10-noasyncpg-noaws_rds_iam 76.19% <79.56%> (+0.94%) ⬆️
python_version3.9-sqlalchemy2.0-pydantic2.0-asyncpg-aws_rds_iam 96.42% <97.08%> (+0.14%) ⬆️
python_version3.9-sqlalchemy2.0-pydantic2.0-asyncpg-noaws_rds_iam 94.52% <97.08%> (+0.21%) ⬆️
python_version3.9-sqlalchemy2.0-pydantic2.0-noasyncpg-aws_rds_iam 78.09% <79.56%> (+0.86%) ⬆️
python_version3.9-sqlalchemy2.0-pydantic2.0-noasyncpg-noaws_rds_iam 76.19% <79.56%> (+0.94%) ⬆️
python_version3.9-sqlalchemy2.0-pydantic2.1-asyncpg-aws_rds_iam 96.42% <97.08%> (+0.14%) ⬆️
python_version3.9-sqlalchemy2.0-pydantic2.1-asyncpg-noaws_rds_iam 94.52% <97.08%> (+0.21%) ⬆️
python_version3.9-sqlalchemy2.0-pydantic2.1-noasyncpg-aws_rds_iam 78.09% <79.56%> (+0.86%) ⬆️
python_version3.9-sqlalchemy2.0-pydantic2.1-noasyncpg-noaws_rds_iam 76.19% <79.56%> (+0.94%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

Files Coverage Δ
fastapi_sqla/__init__.py 100.00% <100.00%> (ø)
fastapi_sqla/_pytest_plugin.py 100.00% <100.00%> (ø)
fastapi_sqla/async_pagination.py 100.00% <100.00%> (ø)
fastapi_sqla/async_sqla.py 100.00% <100.00%> (ø)
fastapi_sqla/base.py 100.00% <100.00%> (ø)
fastapi_sqla/models.py 100.00% <100.00%> (ø)
fastapi_sqla/pagination.py 100.00% <100.00%> (ø)
fastapi_sqla/sqla.py 100.00% <100.00%> (ø)

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

@hadrien
Copy link
Member

hadrien commented Nov 1, 2023

Thanks! well done.

@arththebird arththebird merged commit e9510ac into master Nov 1, 2023
3 checks passed
@arththebird arththebird deleted the feat/DIA-61984/split-modules branch November 1, 2023 17:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants