tai-sql 0.7.12__tar.gz → 0.7.13__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {tai_sql-0.7.12 → tai_sql-0.7.13}/PKG-INFO +1 -1
- {tai_sql-0.7.12 → tai_sql-0.7.13}/pyproject.toml +1 -1
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/generators/python_client/context.py +6 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/generators/python_client/templates/domain/dtos.py.jinja2 +12 -2
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/generators/python_client/templates/domain/model.py.jinja2 +8 -1
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/rules/static/modelo.md +3 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/LICENSE +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/README.md +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/__init__.py +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/cli/commands/__init__.py +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/cli/commands/cmd_backup/__init__.py +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/cli/commands/cmd_backup/main.py +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/cli/commands/cmd_deploy/__init__.py +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/cli/commands/cmd_deploy/config.py +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/cli/commands/cmd_deploy/local.py +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/cli/commands/cmd_deploy/main.py +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/cli/commands/cmd_deploy/workflow.py +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/cli/commands/cmd_feed/__init__.py +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/cli/commands/cmd_feed/main.py +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/cli/commands/cmd_generate/__init__.py +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/cli/commands/cmd_generate/funcs.py +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/cli/commands/cmd_generate/main.py +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/cli/commands/cmd_hash_migrate/__init__.py +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/cli/commands/cmd_hash_migrate/main.py +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/cli/commands/cmd_info/__init__.py +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/cli/commands/cmd_info/main.py +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/cli/commands/cmd_info/status.py +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/cli/commands/cmd_init/__init__.py +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/cli/commands/cmd_init/main.py +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/cli/commands/cmd_init/model.py +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/cli/commands/cmd_install/__init__.py +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/cli/commands/cmd_install/main.py +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/cli/commands/cmd_ping/__init__.py +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/cli/commands/cmd_ping/main.py +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/cli/commands/cmd_pull/__init__.py +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/cli/commands/cmd_pull/funcs.py +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/cli/commands/cmd_pull/main.py +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/cli/commands/cmd_restore/__init__.py +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/cli/commands/cmd_restore/main.py +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/cli/commands/cmd_rules/__init__.py +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/cli/commands/cmd_rules/main.py +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/cli/commands/cmd_schema/__init__.py +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/cli/commands/cmd_schema/model.py +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/cli/commands/cmd_schema/new.py +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/cli/commands/cmd_schema/schemas/__init__.py +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/cli/commands/cmd_schema/schemas/auth.py +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/cli/commands/cmd_schema/schemas/base.py +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/cli/commands/cmd_schema/schemas/chatbot.py +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/cli/commands/cmd_schema/schemas/default.py +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/cli/commands/cmd_schema/set_default.py +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/cli/commands/prompts.py +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/cli/commands/utils/__init__.py +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/cli/commands/utils/connectivity.py +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/cli/commands/utils/create.py +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/cli/commands/utils/github/__init__.py +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/cli/commands/utils/github/auth.py +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/cli/commands/utils/github/client.py +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/cli/commands/utils/github/models.py +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/cli/errors.py +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/cli/main.py +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/cli/preamble.py +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/cli/services/__init__.py +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/cli/services/backup.py +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/connection/README.md +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/connection/__init__.py +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/connection/provider.py +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/connection/recipe.py +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/connection/session.py +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/connection/sources.py +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/crypto.py +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/drivers/__init__.py +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/drivers/base.py +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/drivers/bigquery.py +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/drivers/capabilities.py +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/drivers/mysql.py +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/drivers/postgresql.py +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/drivers/sqlserver.py +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/errors/README.md +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/errors/__init__.py +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/errors/collector.py +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/errors/render.py +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/errors/types.py +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/feed/README.md +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/feed/__init__.py +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/feed/collect.py +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/feed/executor.py +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/feed/feeder.py +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/feed/plan.py +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/feed/presenter.py +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/feed/records.py +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/feed/transform.py +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/generators/__init__.py +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/generators/base.py +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/generators/diagram/README.md +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/generators/diagram/__init__.py +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/generators/diagram/assets/README.md +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/generators/diagram/assets/cytoscape.min.js +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/generators/diagram/builder.py +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/generators/diagram/generator.py +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/generators/diagram/graphviz_render.py +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/generators/diagram/html_render.py +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/generators/diagram/layout.py +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/generators/diagram/model.py +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/generators/diagram/templates/er.html.jinja2 +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/generators/diagram/themes.py +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/generators/python_client/__init__.py +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/generators/python_client/calculated.py +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/generators/python_client/templates/base.py.jinja2 +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/generators/python_client/templates/domain/__init__.py.jinja2 +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/generators/python_client/templates/domain/dao.py.jinja2 +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/generators/python_client/templates/facade.py.jinja2 +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/generators/python_client/templates/macros/aggregation.jinja2 +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/generators/python_client/templates/macros/dataframe.jinja2 +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/generators/python_client/templates/macros/filters.jinja2 +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/generators/python_client/templates/macros/hierarchy.jinja2 +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/generators/python_client/templates/macros/read.jinja2 +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/generators/python_client/templates/macros/triggers.jinja2 +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/generators/python_client/templates/macros/upsert.jinja2 +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/generators/python_client/templates/macros/vector.jinja2 +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/generators/python_client/templates/macros/write.jinja2 +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/generators/python_client/templates/session.py.jinja2 +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/generators/python_client/templates/shared/__init__.py.jinja2 +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/generators/python_client/templates/shared/aggregation.py.jinja2 +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/generators/python_client/templates/shared/context.py.jinja2 +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/generators/python_client/templates/shared/utils/__init__.py.jinja2 +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/generators/python_client/templates/shared/utils/encoders.py.jinja2 +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/generators/python_client/templates/shared/utils/funcs.py.jinja2 +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/generators/python_client/templates/shared/utils/hierarchy.py.jinja2 +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/generators/python_client/templates/shared/utils/rls.py.jinja2 +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/generators/python_client/templates/shared/vector.py.jinja2 +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/generators/python_client/triggers/__init__.py +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/generators/python_client/triggers/analyzer.py +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/generators/python_client/triggers/renderer.py +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/generators/python_client/triggers/steps.py +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/generators/python_client/triggers/transformer.py +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/generators/rules/__init__.py +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/generators/rules/templates/schema.md.jinja2 +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/introspect/README.md +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/introspect/__init__.py +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/introspect/blueprint.py +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/introspect/build.py +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/introspect/defaults.py +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/introspect/naming.py +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/introspect/reader.py +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/introspect/templates/schema.py.jinja2 +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/introspect/types.py +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/introspect/writer.py +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/orm/README.md +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/orm/__init__.py +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/orm/analysis/README.md +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/orm/analysis/__init__.py +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/orm/analysis/calculated.py +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/orm/analysis/collector.py +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/orm/analysis/column_analyzer.py +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/orm/analysis/constraints.py +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/orm/analysis/hints.py +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/orm/analysis/relation_analyzer.py +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/orm/analysis/schema_analyzer.py +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/orm/declarative/README.md +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/orm/declarative/__init__.py +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/orm/declarative/annotations.py +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/orm/declarative/base.py +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/orm/declarative/calculated.py +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/orm/declarative/columns.py +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/orm/declarative/constraints.py +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/orm/declarative/datasource.py +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/orm/declarative/descriptors.py +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/orm/declarative/encoders.py +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/orm/declarative/enumerations.py +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/orm/declarative/relations.py +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/orm/declarative/table.py +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/orm/declarative/trigger_api.py +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/orm/declarative/triggers.py +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/orm/declarative/view.py +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/orm/mapping/README.md +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/orm/mapping/__init__.py +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/orm/mapping/sqlalchemy_mapper.py +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/orm/model/README.md +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/orm/model/__init__.py +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/orm/model/column.py +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/orm/model/constraints.py +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/orm/model/entity.py +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/orm/model/enumeration.py +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/orm/model/relation.py +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/orm/model/schema.py +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/orm/model/trigger.py +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/orm/naming.py +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/orm/ordering.py +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/orm/registry.py +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/orm/types.py +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/project/README.md +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/project/__init__.py +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/project/config.py +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/project/context.py +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/project/manager.py +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/project/paths.py +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/rules/README.md +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/rules/__init__.py +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/rules/catalog.py +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/rules/installer.py +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/rules/meta.py +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/rules/service.py +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/rules/staleness.py +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/rules/static/comandos.md +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/rules/static/errores.md +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/schema.py +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/sync/README.md +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/sync/__init__.py +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/sync/diff/__init__.py +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/sync/diff/constraints.py +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/sync/diff/indexes.py +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/sync/diff/tables.py +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/sync/diff/views.py +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/sync/executor.py +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/sync/ownership.py +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/sync/plan/__init__.py +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/sync/plan/planner.py +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/sync/plan/statements.py +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/sync/presenter.py +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/sync/report.py +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/sync/safety.py +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/sync/state/__init__.py +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/sync/state/local.py +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/sync/state/model.py +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/sync/state/normalize.py +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/sync/state/remote.py +0 -0
- {tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/sync/synchronizer.py +0 -0
|
@@ -225,6 +225,12 @@ class TemplateContextBuilder:
|
|
|
225
225
|
'is_operative': column.is_operative,
|
|
226
226
|
'is_calculated': column.is_calculated,
|
|
227
227
|
'self_reference': column.self_reference,
|
|
228
|
+
# La rellena la base de datos (NOW()): no es obligatoria al crear. Faltaba, y las
|
|
229
|
+
# plantillas que la miraban la leían siempre como falsa.
|
|
230
|
+
'server_now': column.server_now,
|
|
231
|
+
# El tamaño máximo de un texto (`column(length=n)`), para quien valide antes de
|
|
232
|
+
# escribir —los esquemas de formulario de tai-api—. `None` si no se declaró.
|
|
233
|
+
'max_length': column.length if column.type == 'str' else None,
|
|
228
234
|
}
|
|
229
235
|
|
|
230
236
|
if column.is_vector:
|
{tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/generators/python_client/templates/domain/dtos.py.jinja2
RENAMED
|
@@ -247,7 +247,7 @@ class {{ model.name }}Read(PrettyModel):
|
|
|
247
247
|
class {{ model.name }}Create(PrettyModel):
|
|
248
248
|
"""DTO de escritura para {{ model.name }}."""
|
|
249
249
|
{% for column in model.columns -%}
|
|
250
|
-
{% if not column.constraints.get('autoincrement', False) and column.default is none and not column.nullable and not column.is_foreign_key and not column.is_operative and not column.has_encoder|default(false) and not column.is_calculated %}
|
|
250
|
+
{% if not column.constraints.get('autoincrement', False) and column.default is none and not column.nullable and not column.is_foreign_key and not column.is_operative and not column.has_encoder|default(false) and not column.is_calculated and not column.server_now %}
|
|
251
251
|
{{ column.name }}: {{ column.pydantic_type }}
|
|
252
252
|
{% endif %}
|
|
253
253
|
{% endfor %}
|
|
@@ -257,6 +257,9 @@ class {{ model.name }}Create(PrettyModel):
|
|
|
257
257
|
{{ column.name }}: Optional[{{ column.pydantic_type }}] = None
|
|
258
258
|
{% elif column.is_foreign_key %}
|
|
259
259
|
{{ column.name }}: Optional[{{ column.pydantic_type }}] = None
|
|
260
|
+
{% elif column.server_now %}
|
|
261
|
+
{# La rellena la base de datos con NOW() si no llega: no es obligatoria. #}
|
|
262
|
+
{{ column.name }}: Optional[{{ column.pydantic_type }}] = None
|
|
260
263
|
{% elif column.default is none and column.nullable %}
|
|
261
264
|
{{ column.name }}: Optional[{{ column.pydantic_type }}] = None
|
|
262
265
|
{% elif column.default is not none %}
|
|
@@ -295,11 +298,18 @@ class {{ model.name }}Create(PrettyModel):
|
|
|
295
298
|
def to_instance(self) -> {{ model.name }}:
|
|
296
299
|
model = {{ model.name }}(
|
|
297
300
|
{% for column in model.columns %}
|
|
298
|
-
{% if not column.constraints.get('autoincrement', False) and not column.is_operative and not column.is_calculated %}
|
|
301
|
+
{% if not column.constraints.get('autoincrement', False) and not column.is_operative and not column.is_calculated and not column.server_now %}
|
|
299
302
|
{{ column.name }}=self.{{ column.name }},
|
|
300
303
|
{% endif %}
|
|
301
304
|
{% endfor %}
|
|
302
305
|
)
|
|
306
|
+
{% for column in model.columns %}
|
|
307
|
+
{% if column.server_now and not column.is_operative and not column.is_calculated %}
|
|
308
|
+
# Solo si llega: asignarle None mandaría un NULL, y no dejaría a la base de datos poner NOW().
|
|
309
|
+
if self.{{ column.name }} is not None:
|
|
310
|
+
model.{{ column.name }} = self.{{ column.name }}
|
|
311
|
+
{% endif %}
|
|
312
|
+
{% endfor %}
|
|
303
313
|
{% for col in operative_str_cols %}
|
|
304
314
|
model.{{ col.name }} = get_username()
|
|
305
315
|
{% endfor %}
|
{tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/generators/python_client/templates/domain/model.py.jinja2
RENAMED
|
@@ -83,6 +83,9 @@ from pgvector.sqlalchemy import Vector
|
|
|
83
83
|
{% if column.sa_type and column.sa_type not in sa_imports %}
|
|
84
84
|
{% set _ = sa_imports.append(column.sa_type) %}
|
|
85
85
|
{% endif %}
|
|
86
|
+
{% if column.server_now and 'func' not in sa_imports %}
|
|
87
|
+
{% set _ = sa_imports.append('func') %}
|
|
88
|
+
{% endif %}
|
|
86
89
|
{% endfor %}
|
|
87
90
|
{% if sa_imports %}
|
|
88
91
|
from sqlalchemy import {{ sa_imports | sort | join(', ') }}
|
|
@@ -165,7 +168,7 @@ class {{ model.name }}(Base):
|
|
|
165
168
|
{% set mapped_type = 'Optional[' + py_type + ']' if column.nullable else py_type %}
|
|
166
169
|
{# Determine if mapped_column() call is needed #}
|
|
167
170
|
{% set has_constraints = column.constraints.values() | select | list | length > 0 %}
|
|
168
|
-
{% set needs_mapped_column = has_constraints or column.encrypt or column.hash or column.is_calculated or column.sa_type is not none or column.type == 'vector' %}
|
|
171
|
+
{% set needs_mapped_column = has_constraints or column.encrypt or column.hash or column.is_calculated or column.sa_type is not none or column.type == 'vector' or column.server_now %}
|
|
169
172
|
{% if needs_mapped_column %}
|
|
170
173
|
{% set mc_args = [] %}
|
|
171
174
|
{% if column.type == 'vector' %}{% set _ = mc_args.append('Vector(' + column.dimensions|string + ')') %}
|
|
@@ -185,6 +188,10 @@ class {{ model.name }}(Base):
|
|
|
185
188
|
{% endfor %}
|
|
186
189
|
{% endif %}
|
|
187
190
|
{% if column.encrypt or column.hash %}{% set _ = mc_args.append('name="' + column.name + '"') %}{% endif %}
|
|
191
|
+
{# La pone la base de datos. Sin declararlo aquí, SQLAlchemy la enviaba como NULL —rellena
|
|
192
|
+
con None lo que no tiene valor para poder agrupar el INSERT— y la base de datos no llegaba
|
|
193
|
+
a poner NOW(). #}
|
|
194
|
+
{% if column.server_now %}{% set _ = mc_args.append('server_default=func.now()') %}{% endif %}
|
|
188
195
|
{% if column.is_calculated %}{% set _ = mc_args.append('name="' + column.name + '"') %}{% endif %}
|
|
189
196
|
{{ col_attr }}: Mapped[{{ mapped_type }}] = mapped_column({{ mc_args | join(', ') }})
|
|
190
197
|
{% else %}
|
|
@@ -138,6 +138,9 @@ column(
|
|
|
138
138
|
|
|
139
139
|
Una columna sin `column()` es una columna normal: `nombre: col[str]` basta.
|
|
140
140
|
|
|
141
|
+
`server_now=True` la rellena la base de datos con `NOW()`: en el `Create` es opcional, y si no se
|
|
142
|
+
envía, el cliente no la manda y el motor pone la fecha.
|
|
143
|
+
|
|
141
144
|
### Tipos disponibles
|
|
142
145
|
|
|
143
146
|
`int`, `bigint`, `smallint`, `float`, `numeric`, `str`, `text`, `bool`, `datetime`,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/generators/python_client/templates/domain/dao.py.jinja2
RENAMED
|
File without changes
|
{tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/generators/python_client/templates/facade.py.jinja2
RENAMED
|
File without changes
|
|
File without changes
|
{tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/generators/python_client/templates/macros/dataframe.jinja2
RENAMED
|
File without changes
|
{tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/generators/python_client/templates/macros/filters.jinja2
RENAMED
|
File without changes
|
{tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/generators/python_client/templates/macros/hierarchy.jinja2
RENAMED
|
File without changes
|
{tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/generators/python_client/templates/macros/read.jinja2
RENAMED
|
File without changes
|
{tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/generators/python_client/templates/macros/triggers.jinja2
RENAMED
|
File without changes
|
{tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/generators/python_client/templates/macros/upsert.jinja2
RENAMED
|
File without changes
|
{tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/generators/python_client/templates/macros/vector.jinja2
RENAMED
|
File without changes
|
{tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/generators/python_client/templates/macros/write.jinja2
RENAMED
|
File without changes
|
{tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/generators/python_client/templates/session.py.jinja2
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{tai_sql-0.7.12 → tai_sql-0.7.13}/tai_sql/generators/python_client/templates/shared/vector.py.jinja2
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|