fastcodedog 3.2.2__tar.gz → 3.2.4__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.
- {fastcodedog-3.2.2 → fastcodedog-3.2.4}/PKG-INFO +1 -1
- {fastcodedog-3.2.2 → fastcodedog-3.2.4}/fastcodedog/generation/api/oauth2.py +52 -3
- {fastcodedog-3.2.2 → fastcodedog-3.2.4}/fastcodedog/generation/base/block.py +12 -3
- {fastcodedog-3.2.2 → fastcodedog-3.2.4}/fastcodedog/generation/base/text.py +3 -2
- {fastcodedog-3.2.2 → fastcodedog-3.2.4}/fastcodedog/generation/crud/query_functions.py +1 -1
- {fastcodedog-3.2.2 → fastcodedog-3.2.4}/pyproject.toml +1 -1
- {fastcodedog-3.2.2 → fastcodedog-3.2.4}/README.md +0 -0
- {fastcodedog-3.2.2 → fastcodedog-3.2.4}/README_zh.md +0 -0
- {fastcodedog-3.2.2 → fastcodedog-3.2.4}/fastcodedog/__init__.py +0 -0
- {fastcodedog-3.2.2 → fastcodedog-3.2.4}/fastcodedog/cli.py +0 -0
- {fastcodedog-3.2.2 → fastcodedog-3.2.4}/fastcodedog/common/__init__.py +0 -0
- {fastcodedog-3.2.2 → fastcodedog-3.2.4}/fastcodedog/common/clean_expired.py +0 -0
- {fastcodedog-3.2.2 → fastcodedog-3.2.4}/fastcodedog/common/source_file_path.py +0 -0
- {fastcodedog-3.2.2 → fastcodedog-3.2.4}/fastcodedog/common/write_file.py +0 -0
- {fastcodedog-3.2.2 → fastcodedog-3.2.4}/fastcodedog/context/__init__.py +0 -0
- {fastcodedog-3.2.2 → fastcodedog-3.2.4}/fastcodedog/context/api/__init__.py +0 -0
- {fastcodedog-3.2.2 → fastcodedog-3.2.4}/fastcodedog/context/api/api.py +0 -0
- {fastcodedog-3.2.2 → fastcodedog-3.2.4}/fastcodedog/context/api/endpoint.py +0 -0
- {fastcodedog-3.2.2 → fastcodedog-3.2.4}/fastcodedog/context/api/oauth2.py +0 -0
- {fastcodedog-3.2.2 → fastcodedog-3.2.4}/fastcodedog/context/api/param.py +0 -0
- {fastcodedog-3.2.2 → fastcodedog-3.2.4}/fastcodedog/context/common/__init__.py +0 -0
- {fastcodedog-3.2.2 → fastcodedog-3.2.4}/fastcodedog/context/common/get_context_object.py +0 -0
- {fastcodedog-3.2.2 → fastcodedog-3.2.4}/fastcodedog/context/common/get_relationship.py +0 -0
- {fastcodedog-3.2.2 → fastcodedog-3.2.4}/fastcodedog/context/context.py +0 -0
- {fastcodedog-3.2.2 → fastcodedog-3.2.4}/fastcodedog/context/contextbase.py +0 -0
- {fastcodedog-3.2.2 → fastcodedog-3.2.4}/fastcodedog/context/crud/__init__.py +0 -0
- {fastcodedog-3.2.2 → fastcodedog-3.2.4}/fastcodedog/context/crud/column.py +0 -0
- {fastcodedog-3.2.2 → fastcodedog-3.2.4}/fastcodedog/context/crud/crud.py +0 -0
- {fastcodedog-3.2.2 → fastcodedog-3.2.4}/fastcodedog/context/crud/default_value.py +0 -0
- {fastcodedog-3.2.2 → fastcodedog-3.2.4}/fastcodedog/context/crud/join_relationship.py +0 -0
- {fastcodedog-3.2.2 → fastcodedog-3.2.4}/fastcodedog/context/crud/query.py +0 -0
- {fastcodedog-3.2.2 → fastcodedog-3.2.4}/fastcodedog/context/model/__init__.py +0 -0
- {fastcodedog-3.2.2 → fastcodedog-3.2.4}/fastcodedog/context/model/additional_method.py +0 -0
- {fastcodedog-3.2.2 → fastcodedog-3.2.4}/fastcodedog/context/model/case.py +0 -0
- {fastcodedog-3.2.2 → fastcodedog-3.2.4}/fastcodedog/context/model/column.py +0 -0
- {fastcodedog-3.2.2 → fastcodedog-3.2.4}/fastcodedog/context/model/computed_property.py +0 -0
- {fastcodedog-3.2.2 → fastcodedog-3.2.4}/fastcodedog/context/model/copy_method.py +0 -0
- {fastcodedog-3.2.2 → fastcodedog-3.2.4}/fastcodedog/context/model/model.py +0 -0
- {fastcodedog-3.2.2 → fastcodedog-3.2.4}/fastcodedog/context/model/parameter.py +0 -0
- {fastcodedog-3.2.2 → fastcodedog-3.2.4}/fastcodedog/context/model/relationship.py +0 -0
- {fastcodedog-3.2.2 → fastcodedog-3.2.4}/fastcodedog/context/schema/__init__.py +0 -0
- {fastcodedog-3.2.2 → fastcodedog-3.2.4}/fastcodedog/context/schema/alias_generator.py +0 -0
- {fastcodedog-3.2.2 → fastcodedog-3.2.4}/fastcodedog/context/schema/field.py +0 -0
- {fastcodedog-3.2.2 → fastcodedog-3.2.4}/fastcodedog/context/schema/response_schema.py +0 -0
- {fastcodedog-3.2.2 → fastcodedog-3.2.4}/fastcodedog/context/schema/schema.py +0 -0
- {fastcodedog-3.2.2 → fastcodedog-3.2.4}/fastcodedog/context/schema/sub_object.py +0 -0
- {fastcodedog-3.2.2 → fastcodedog-3.2.4}/fastcodedog/context/setting/__init__.py +0 -0
- {fastcodedog-3.2.2 → fastcodedog-3.2.4}/fastcodedog/context/setting/config.py +0 -0
- {fastcodedog-3.2.2 → fastcodedog-3.2.4}/fastcodedog/context/setting/extend_app.py +0 -0
- {fastcodedog-3.2.2 → fastcodedog-3.2.4}/fastcodedog/context/setting/listen.py +0 -0
- {fastcodedog-3.2.2 → fastcodedog-3.2.4}/fastcodedog/context/setting/project.py +0 -0
- {fastcodedog-3.2.2 → fastcodedog-3.2.4}/fastcodedog/context/setting/source_directory.py +0 -0
- {fastcodedog-3.2.2 → fastcodedog-3.2.4}/fastcodedog/context/setting/tenant.py +0 -0
- {fastcodedog-3.2.2 → fastcodedog-3.2.4}/fastcodedog/generation/__init__.py +0 -0
- {fastcodedog-3.2.2 → fastcodedog-3.2.4}/fastcodedog/generation/api/__init__.py +0 -0
- {fastcodedog-3.2.2 → fastcodedog-3.2.4}/fastcodedog/generation/api/api.py +0 -0
- {fastcodedog-3.2.2 → fastcodedog-3.2.4}/fastcodedog/generation/api/api_function.py +0 -0
- {fastcodedog-3.2.2 → fastcodedog-3.2.4}/fastcodedog/generation/api/config.py +0 -0
- {fastcodedog-3.2.2 → fastcodedog-3.2.4}/fastcodedog/generation/api/db.py +0 -0
- {fastcodedog-3.2.2 → fastcodedog-3.2.4}/fastcodedog/generation/api/generation.py +0 -0
- {fastcodedog-3.2.2 → fastcodedog-3.2.4}/fastcodedog/generation/api/main.py +0 -0
- {fastcodedog-3.2.2 → fastcodedog-3.2.4}/fastcodedog/generation/base/__init__.py +0 -0
- {fastcodedog-3.2.2 → fastcodedog-3.2.4}/fastcodedog/generation/base/call.py +0 -0
- {fastcodedog-3.2.2 → fastcodedog-3.2.4}/fastcodedog/generation/base/class_type.py +0 -0
- {fastcodedog-3.2.2 → fastcodedog-3.2.4}/fastcodedog/generation/base/file.py +0 -0
- {fastcodedog-3.2.2 → fastcodedog-3.2.4}/fastcodedog/generation/base/function.py +0 -0
- {fastcodedog-3.2.2 → fastcodedog-3.2.4}/fastcodedog/generation/base/head_comment.py +0 -0
- {fastcodedog-3.2.2 → fastcodedog-3.2.4}/fastcodedog/generation/base/line_break.py +0 -0
- {fastcodedog-3.2.2 → fastcodedog-3.2.4}/fastcodedog/generation/base/location_finder.py +0 -0
- {fastcodedog-3.2.2 → fastcodedog-3.2.4}/fastcodedog/generation/base/required_import.py +0 -0
- {fastcodedog-3.2.2 → fastcodedog-3.2.4}/fastcodedog/generation/base/variable.py +0 -0
- {fastcodedog-3.2.2 → fastcodedog-3.2.4}/fastcodedog/generation/commonfiles/__init__.py +0 -0
- {fastcodedog-3.2.2 → fastcodedog-3.2.4}/fastcodedog/generation/commonfiles/configfiles/__init__.py +0 -0
- {fastcodedog-3.2.2 → fastcodedog-3.2.4}/fastcodedog/generation/commonfiles/generation.py +0 -0
- {fastcodedog-3.2.2 → fastcodedog-3.2.4}/fastcodedog/generation/commonfiles/main.py +0 -0
- {fastcodedog-3.2.2 → fastcodedog-3.2.4}/fastcodedog/generation/commonfiles/oauthfiles/__init__.py +0 -0
- {fastcodedog-3.2.2 → fastcodedog-3.2.4}/fastcodedog/generation/commonfiles/toolfiles/__init__.py +0 -0
- {fastcodedog-3.2.2 → fastcodedog-3.2.4}/fastcodedog/generation/commonfiles/utilfiles/__init__.py +0 -0
- {fastcodedog-3.2.2 → fastcodedog-3.2.4}/fastcodedog/generation/commonfiles/utilfiles/api_logging.py +0 -0
- {fastcodedog-3.2.2 → fastcodedog-3.2.4}/fastcodedog/generation/commonfiles/utilfiles/case_converter.py +0 -0
- {fastcodedog-3.2.2 → fastcodedog-3.2.4}/fastcodedog/generation/commonfiles/utilfiles/log.py +0 -0
- {fastcodedog-3.2.2 → fastcodedog-3.2.4}/fastcodedog/generation/crud/__init__.py +0 -0
- {fastcodedog-3.2.2 → fastcodedog-3.2.4}/fastcodedog/generation/crud/crud.py +0 -0
- {fastcodedog-3.2.2 → fastcodedog-3.2.4}/fastcodedog/generation/crud/crud_functions.py +0 -0
- {fastcodedog-3.2.2 → fastcodedog-3.2.4}/fastcodedog/generation/crud/generation.py +0 -0
- {fastcodedog-3.2.2 → fastcodedog-3.2.4}/fastcodedog/generation/crud/selectinload.py +0 -0
- {fastcodedog-3.2.2 → fastcodedog-3.2.4}/fastcodedog/generation/model/__init__.py +0 -0
- {fastcodedog-3.2.2 → fastcodedog-3.2.4}/fastcodedog/generation/model/additional_method.py +0 -0
- {fastcodedog-3.2.2 → fastcodedog-3.2.4}/fastcodedog/generation/model/base.py +0 -0
- {fastcodedog-3.2.2 → fastcodedog-3.2.4}/fastcodedog/generation/model/case.py +0 -0
- {fastcodedog-3.2.2 → fastcodedog-3.2.4}/fastcodedog/generation/model/column.py +0 -0
- {fastcodedog-3.2.2 → fastcodedog-3.2.4}/fastcodedog/generation/model/computed_property.py +0 -0
- {fastcodedog-3.2.2 → fastcodedog-3.2.4}/fastcodedog/generation/model/copy_method.py +0 -0
- {fastcodedog-3.2.2 → fastcodedog-3.2.4}/fastcodedog/generation/model/generation.py +0 -0
- {fastcodedog-3.2.2 → fastcodedog-3.2.4}/fastcodedog/generation/model/init.py +0 -0
- {fastcodedog-3.2.2 → fastcodedog-3.2.4}/fastcodedog/generation/model/model.py +0 -0
- {fastcodedog-3.2.2 → fastcodedog-3.2.4}/fastcodedog/generation/model/relation_object.py +0 -0
- {fastcodedog-3.2.2 → fastcodedog-3.2.4}/fastcodedog/generation/model/relationship.py +0 -0
- {fastcodedog-3.2.2 → fastcodedog-3.2.4}/fastcodedog/generation/model/table_args.py +0 -0
- {fastcodedog-3.2.2 → fastcodedog-3.2.4}/fastcodedog/generation/schema/__init__.py +0 -0
- {fastcodedog-3.2.2 → fastcodedog-3.2.4}/fastcodedog/generation/schema/field.py +0 -0
- {fastcodedog-3.2.2 → fastcodedog-3.2.4}/fastcodedog/generation/schema/generation.py +0 -0
- {fastcodedog-3.2.2 → fastcodedog-3.2.4}/fastcodedog/generation/schema/response_schema.py +0 -0
- {fastcodedog-3.2.2 → fastcodedog-3.2.4}/fastcodedog/generation/schema/schema.py +0 -0
- {fastcodedog-3.2.2 → fastcodedog-3.2.4}/fastcodedog/generation/schema/sub_object.py +0 -0
- {fastcodedog-3.2.2 → fastcodedog-3.2.4}/fastcodedog/inc/middleware/api_logging.file.in +0 -0
- {fastcodedog-3.2.2 → fastcodedog-3.2.4}/fastcodedog/prepare/__init__.py +0 -0
- {fastcodedog-3.2.2 → fastcodedog-3.2.4}/fastcodedog/prepare/model_and_schema_to_crud/__init__.py +0 -0
- {fastcodedog-3.2.2 → fastcodedog-3.2.4}/fastcodedog/prepare/model_and_schema_to_crud/default_values.py +0 -0
- {fastcodedog-3.2.2 → fastcodedog-3.2.4}/fastcodedog/prepare/model_and_schema_to_crud/prepare.py +0 -0
- {fastcodedog-3.2.2 → fastcodedog-3.2.4}/fastcodedog/prepare/model_and_schema_to_crud/queries.py +0 -0
- {fastcodedog-3.2.2 → fastcodedog-3.2.4}/fastcodedog/prepare/model_to_schema/__init__.py +0 -0
- {fastcodedog-3.2.2 → fastcodedog-3.2.4}/fastcodedog/prepare/model_to_schema/alias_generator.py +0 -0
- {fastcodedog-3.2.2 → fastcodedog-3.2.4}/fastcodedog/prepare/model_to_schema/no_input_fields.py +0 -0
- {fastcodedog-3.2.2 → fastcodedog-3.2.4}/fastcodedog/prepare/model_to_schema/no_response_fields.py +0 -0
- {fastcodedog-3.2.2 → fastcodedog-3.2.4}/fastcodedog/prepare/model_to_schema/prepare.py +0 -0
- {fastcodedog-3.2.2 → fastcodedog-3.2.4}/fastcodedog/prepare/model_to_schema/response_schemas.py +0 -0
- {fastcodedog-3.2.2 → fastcodedog-3.2.4}/fastcodedog/prepare/model_to_schema/specified_field_types.py +0 -0
- {fastcodedog-3.2.2 → fastcodedog-3.2.4}/fastcodedog/prepare/pdm_to_model/README.MD +0 -0
- {fastcodedog-3.2.2 → fastcodedog-3.2.4}/fastcodedog/prepare/pdm_to_model/__init__.py +0 -0
- {fastcodedog-3.2.2 → fastcodedog-3.2.4}/fastcodedog/prepare/pdm_to_model/after/__init__.py +0 -0
- {fastcodedog-3.2.2 → fastcodedog-3.2.4}/fastcodedog/prepare/pdm_to_model/after/additional_methods.py +0 -0
- {fastcodedog-3.2.2 → fastcodedog-3.2.4}/fastcodedog/prepare/pdm_to_model/after/additional_relationships.py +0 -0
- {fastcodedog-3.2.2 → fastcodedog-3.2.4}/fastcodedog/prepare/pdm_to_model/after/case.py +0 -0
- {fastcodedog-3.2.2 → fastcodedog-3.2.4}/fastcodedog/prepare/pdm_to_model/after/computed_properties.py +0 -0
- {fastcodedog-3.2.2 → fastcodedog-3.2.4}/fastcodedog/prepare/pdm_to_model/after/copy_methods.py +0 -0
- {fastcodedog-3.2.2 → fastcodedog-3.2.4}/fastcodedog/prepare/pdm_to_model/after/disable_relationships.py +0 -0
- {fastcodedog-3.2.2 → fastcodedog-3.2.4}/fastcodedog/prepare/pdm_to_model/after/specified_class_names.py +0 -0
- {fastcodedog-3.2.2 → fastcodedog-3.2.4}/fastcodedog/prepare/pdm_to_model/after/specified_relationship_orderby.py +0 -0
- {fastcodedog-3.2.2 → fastcodedog-3.2.4}/fastcodedog/prepare/pdm_to_model/before/__init__.py +0 -0
- {fastcodedog-3.2.2 → fastcodedog-3.2.4}/fastcodedog/prepare/pdm_to_model/before/additional_foreign_keys.py +0 -0
- {fastcodedog-3.2.2 → fastcodedog-3.2.4}/fastcodedog/prepare/pdm_to_model/before/fill_tenant_id.py +0 -0
- {fastcodedog-3.2.2 → fastcodedog-3.2.4}/fastcodedog/prepare/pdm_to_model/before/specified_column_types.py +0 -0
- {fastcodedog-3.2.2 → fastcodedog-3.2.4}/fastcodedog/prepare/pdm_to_model/before/specified_relationship_names.py +0 -0
- {fastcodedog-3.2.2 → fastcodedog-3.2.4}/fastcodedog/prepare/pdm_to_model/column.py +0 -0
- {fastcodedog-3.2.2 → fastcodedog-3.2.4}/fastcodedog/prepare/pdm_to_model/pdm.py +0 -0
- {fastcodedog-3.2.2 → fastcodedog-3.2.4}/fastcodedog/prepare/pdm_to_model/prepare.py +0 -0
- {fastcodedog-3.2.2 → fastcodedog-3.2.4}/fastcodedog/prepare/pdm_to_model/reference.xml +0 -0
- {fastcodedog-3.2.2 → fastcodedog-3.2.4}/fastcodedog/prepare/pdm_to_model/table.py +0 -0
- {fastcodedog-3.2.2 → fastcodedog-3.2.4}/fastcodedog/prepare/pdm_to_model/table.xml +0 -0
- {fastcodedog-3.2.2 → fastcodedog-3.2.4}/fastcodedog/prepare/schema_and_crud_to_api/__init__.py +0 -0
- {fastcodedog-3.2.2 → fastcodedog-3.2.4}/fastcodedog/prepare/schema_and_crud_to_api/endpoint.py +0 -0
- {fastcodedog-3.2.2 → fastcodedog-3.2.4}/fastcodedog/prepare/schema_and_crud_to_api/prepare.py +0 -0
- {fastcodedog-3.2.2 → fastcodedog-3.2.4}/fastcodedog/prepare/schema_and_crud_to_api/schemas.py +0 -0
- {fastcodedog-3.2.2 → fastcodedog-3.2.4}/fastcodedog/prepare/schema_and_crud_to_api/validate_reponse_models.py +0 -0
- {fastcodedog-3.2.2 → fastcodedog-3.2.4}/fastcodedog/util/__init__.py +0 -0
- {fastcodedog-3.2.2 → fastcodedog-3.2.4}/fastcodedog/util/case_converter.py +0 -0
- {fastcodedog-3.2.2 → fastcodedog-3.2.4}/fastcodedog/util/deep_update.py +0 -0
- {fastcodedog-3.2.2 → fastcodedog-3.2.4}/fastcodedog/util/extractor.py +0 -0
- {fastcodedog-3.2.2 → fastcodedog-3.2.4}/fastcodedog/util/find_file.py +0 -0
- {fastcodedog-3.2.2 → fastcodedog-3.2.4}/fastcodedog/util/indent.py +0 -0
- {fastcodedog-3.2.2 → fastcodedog-3.2.4}/fastcodedog/util/inflect_wrapper.py +0 -0
- {fastcodedog-3.2.2 → fastcodedog-3.2.4}/fastcodedog/util/make_dirs.py +0 -0
- {fastcodedog-3.2.2 → fastcodedog-3.2.4}/fastcodedog/util/read_inc.py +0 -0
- {fastcodedog-3.2.2 → fastcodedog-3.2.4}/fastcodedog/util/singleton.py +0 -0
- {fastcodedog-3.2.2 → fastcodedog-3.2.4}/fastcodedog/util/type_converter.py +0 -0
- {fastcodedog-3.2.2 → fastcodedog-3.2.4}/fastcodedog/util/valid_name.py +0 -0
- {fastcodedog-3.2.2 → fastcodedog-3.2.4}/fastcodedog/util/wrap_str_with_quotation.py +0 -0
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
from fastcodedog.context.context import ctx_instance
|
|
4
4
|
from fastcodedog.generation.api.config import Config
|
|
5
5
|
from fastcodedog.generation.api.db import Db
|
|
6
|
+
from fastcodedog.generation.base.class_type import ClassType
|
|
6
7
|
from fastcodedog.generation.base.file import File
|
|
7
8
|
from fastcodedog.generation.base.function import Function
|
|
8
9
|
from fastcodedog.generation.base.location_finder import LocationFinder
|
|
@@ -35,10 +36,38 @@ OAuth2.REDIS_URL = 'redis://localhost:6379/oauth2'""")
|
|
|
35
36
|
self.blocks.append(Text("""if redis_url:
|
|
36
37
|
OAuth2.REDIS_URL = redis_url
|
|
37
38
|
""", possible_imports=Import('redis_url', Config().package)))
|
|
39
|
+
# read_me方法的response_model
|
|
40
|
+
self.read_me_response = '' if not ctx_instance.tenant.enabled else self._init_read_me_response_model()
|
|
38
41
|
self._init_login()
|
|
39
42
|
self._init_remove_and_refresh()
|
|
40
43
|
self._init_read_me()
|
|
41
44
|
|
|
45
|
+
def _init_read_me_response_model(self):
|
|
46
|
+
class_user_with_tenant = ClassType('UserWithTenant', base_class='BaseModel', comment='用户信息,包含租户信息')
|
|
47
|
+
|
|
48
|
+
module = ctx_instance.oauth2.module
|
|
49
|
+
model_name = ctx_instance.oauth2.model
|
|
50
|
+
snake_name = camel_to_snake(model_name)
|
|
51
|
+
user_api = ctx_instance.apis[module][model_name]
|
|
52
|
+
from fastcodedog.generation.api.api import Api
|
|
53
|
+
api = Api(user_api)
|
|
54
|
+
v_user = Text('user: UserResponse', possible_imports=Import(api.response_model,
|
|
55
|
+
from_=api.package,
|
|
56
|
+
as_='UserResponse'))
|
|
57
|
+
class_user_with_tenant.blocks.append(v_user)
|
|
58
|
+
|
|
59
|
+
tenant_model = ctx_instance.get_tenant_model()
|
|
60
|
+
v_tenant = Text(f'tenant: Optional[TenantSchema] = None', possible_imports=['from typing import Optional', Import(tenant_model.name,
|
|
61
|
+
from_=LocationFinder.get_package(tenant_model.name, 'schema', tenant_model.module),
|
|
62
|
+
as_='TenantSchema')])
|
|
63
|
+
class_user_with_tenant.blocks.append(v_tenant)
|
|
64
|
+
class_config = ClassType('Config', base_class=None)
|
|
65
|
+
class_config.blocks.append(Text('from_attributes = True'))
|
|
66
|
+
class_user_with_tenant.blocks.append(class_config)
|
|
67
|
+
|
|
68
|
+
self.blocks.append(class_user_with_tenant)
|
|
69
|
+
return 'UserWithTenant'
|
|
70
|
+
|
|
42
71
|
def _init_login(self):
|
|
43
72
|
module = ctx_instance.oauth2.module
|
|
44
73
|
model_name = ctx_instance.oauth2.model
|
|
@@ -137,7 +166,7 @@ async def refresh(refresh_token: str= Body(..., embed=True)):
|
|
|
137
166
|
function = Function('read_me', async_=True)
|
|
138
167
|
function.decorators.append(
|
|
139
168
|
Function.Decorator('app.get', params=[f"'{self.me_url}'", Variable('tags', value=['认证(OAtuh)']),
|
|
140
|
-
Variable('response_model', value=
|
|
169
|
+
Variable('response_model', value=self.read_me_response,
|
|
141
170
|
possible_imports=Import(api.response_model,
|
|
142
171
|
from_=api.package,
|
|
143
172
|
as_='UserResponse')
|
|
@@ -175,8 +204,28 @@ if not {snake_name}:
|
|
|
175
204
|
raise HTTPException(status_code=HTTP_404_NOT_FOUND, detail=f"数据未找到")""",
|
|
176
205
|
possible_imports=['from fastapi import HTTPException',
|
|
177
206
|
'from starlette.status import HTTP_404_NOT_FOUND']))
|
|
207
|
+
|
|
208
|
+
# 如果启用了租户,则需要构造包含租户信息的返回模型
|
|
209
|
+
if ctx_instance.tenant.enabled:
|
|
210
|
+
tenant_model = ctx_instance.get_tenant_model()
|
|
211
|
+
function.blocks.append(Text(f"""tenant = None
|
|
212
|
+
tenant_id = OAuth2.get_token_user(token).get("tenant_id")
|
|
213
|
+
if tenant_id:
|
|
214
|
+
tenant_obj = session.query({tenant_model.name}).filter_by(id=tenant_id).first()
|
|
215
|
+
if tenant_obj:
|
|
216
|
+
tenant = TenantSchema.model_validate(tenant_obj)
|
|
217
|
+
""", possible_imports=[Import(tenant_model.name, LocationFinder.get_package(tenant_model.name, 'model', tenant_model.module)),
|
|
218
|
+
Import(tenant_model.name,
|
|
219
|
+
from_=LocationFinder.get_package(tenant_model.name, 'schema', tenant_model.module),
|
|
220
|
+
as_='TenantSchema')]))
|
|
178
221
|
if api.validate_response_model:
|
|
179
|
-
|
|
222
|
+
if ctx_instance.tenant.enabled:
|
|
223
|
+
function.blocks.append(Text(f"""return {self.read_me_response}({snake_name}=response_model.model_validate({snake_name}), tenant=tenant)"""))
|
|
224
|
+
else:
|
|
225
|
+
function.blocks.append(Text(f"""return response_model.model_validate({snake_name})"""))
|
|
180
226
|
else:
|
|
181
|
-
|
|
227
|
+
if ctx_instance.tenant.enabled:
|
|
228
|
+
function.blocks.append(Text(f"""return {self.read_me_response}({snake_name}={snake_name}, tenant=tenant)"""))
|
|
229
|
+
else:
|
|
230
|
+
function.blocks.append(Text(f"""return {snake_name}"""))
|
|
182
231
|
self.blocks.append(function)
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
# -*- coding: utf-8 -*-
|
|
2
|
+
import re
|
|
3
|
+
|
|
2
4
|
from fastcodedog.context.contextbase import ContextBase
|
|
3
5
|
from fastcodedog.generation.base.required_import import RequiredImport, Import
|
|
4
6
|
from fastcodedog.util.extractor import extract_variables
|
|
@@ -29,12 +31,19 @@ class Block:
|
|
|
29
31
|
key = import_statement.as_ if import_statement.as_ else import_statement.import_
|
|
30
32
|
self.possible_imports[key] = import_statement
|
|
31
33
|
|
|
32
|
-
def get_required_imports(self) -> RequiredImport:
|
|
34
|
+
def get_required_imports(self, strict=True) -> RequiredImport:
|
|
35
|
+
"""
|
|
36
|
+
strict=True(默认):使用 AST 解析,仅匹配代码中出现的变量名;
|
|
37
|
+
strict=False:不做语法解析,将代码段中所有单词逐一与 possible_imports 的 key 比对。
|
|
38
|
+
"""
|
|
33
39
|
required_import = RequiredImport()
|
|
34
40
|
content = self.serialize(with_comment=False)
|
|
35
|
-
|
|
41
|
+
if strict:
|
|
42
|
+
all_tokens = extract_variables(content)
|
|
43
|
+
else:
|
|
44
|
+
all_tokens = re.findall(r'\b[a-zA-Z_]\w*\b', content)
|
|
36
45
|
for varibale, import_ in self.possible_imports.items():
|
|
37
|
-
if varibale in
|
|
46
|
+
if varibale in all_tokens:
|
|
38
47
|
required_import.add(import_)
|
|
39
48
|
return required_import
|
|
40
49
|
|
|
@@ -6,9 +6,10 @@ from fastcodedog.util.indent import add_indent
|
|
|
6
6
|
|
|
7
7
|
|
|
8
8
|
class Text(Block):
|
|
9
|
-
def __init__(self, content, indent=None, possible_imports: list | str = None, parent=None):
|
|
9
|
+
def __init__(self, content, indent=None, possible_imports: list | str = None, parent=None, strict=True):
|
|
10
10
|
"""纯文本类型"""
|
|
11
11
|
super().__init__(name='__content__', possible_imports=possible_imports, parent=parent)
|
|
12
|
+
self.strict = strict # 解析import的时候是否采用ast
|
|
12
13
|
self.content = content
|
|
13
14
|
self.indent = indent
|
|
14
15
|
|
|
@@ -19,4 +20,4 @@ class Text(Block):
|
|
|
19
20
|
def get_required_imports(self) -> RequiredImport:
|
|
20
21
|
if not self.possible_imports:
|
|
21
22
|
return RequiredImport()
|
|
22
|
-
return super().get_required_imports()
|
|
23
|
+
return super().get_required_imports(strict=self.strict)
|
|
@@ -216,7 +216,7 @@ class Query(Crud):
|
|
|
216
216
|
self.blocks.append(Text(f'query = query.distinct({self.context.distinct})'))
|
|
217
217
|
if self.context.orders:
|
|
218
218
|
self.blocks.append(Text(f"""if order_by and order_by not in {self.context.orders}:
|
|
219
|
-
raise Exception(f'未知的排序方式:{{order_by}},可选值:{", ".join(self.context.orders)}')"""))
|
|
219
|
+
raise Exception(f'未知的排序方式:{{order_by}},可选值:{", ".join(self.context.orders)}')""", possible_imports=['from sqlalchemy import nullslast'], strict=False))
|
|
220
220
|
self.blocks.append(Text(f"""if order_by:
|
|
221
221
|
query = eval(f'query.order_by({{order_by}})') # 采用eval,由上面的if语句确保不执行危险代码"""))
|
|
222
222
|
self.blocks.append(Text(f'return query'))
|
|
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
|
{fastcodedog-3.2.2 → fastcodedog-3.2.4}/fastcodedog/generation/commonfiles/configfiles/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fastcodedog-3.2.2 → fastcodedog-3.2.4}/fastcodedog/generation/commonfiles/oauthfiles/__init__.py
RENAMED
|
File without changes
|
{fastcodedog-3.2.2 → fastcodedog-3.2.4}/fastcodedog/generation/commonfiles/toolfiles/__init__.py
RENAMED
|
File without changes
|
{fastcodedog-3.2.2 → fastcodedog-3.2.4}/fastcodedog/generation/commonfiles/utilfiles/__init__.py
RENAMED
|
File without changes
|
{fastcodedog-3.2.2 → fastcodedog-3.2.4}/fastcodedog/generation/commonfiles/utilfiles/api_logging.py
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
|
{fastcodedog-3.2.2 → fastcodedog-3.2.4}/fastcodedog/prepare/model_and_schema_to_crud/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{fastcodedog-3.2.2 → fastcodedog-3.2.4}/fastcodedog/prepare/model_and_schema_to_crud/prepare.py
RENAMED
|
File without changes
|
{fastcodedog-3.2.2 → fastcodedog-3.2.4}/fastcodedog/prepare/model_and_schema_to_crud/queries.py
RENAMED
|
File without changes
|
|
File without changes
|
{fastcodedog-3.2.2 → fastcodedog-3.2.4}/fastcodedog/prepare/model_to_schema/alias_generator.py
RENAMED
|
File without changes
|
{fastcodedog-3.2.2 → fastcodedog-3.2.4}/fastcodedog/prepare/model_to_schema/no_input_fields.py
RENAMED
|
File without changes
|
{fastcodedog-3.2.2 → fastcodedog-3.2.4}/fastcodedog/prepare/model_to_schema/no_response_fields.py
RENAMED
|
File without changes
|
|
File without changes
|
{fastcodedog-3.2.2 → fastcodedog-3.2.4}/fastcodedog/prepare/model_to_schema/response_schemas.py
RENAMED
|
File without changes
|
{fastcodedog-3.2.2 → fastcodedog-3.2.4}/fastcodedog/prepare/model_to_schema/specified_field_types.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fastcodedog-3.2.2 → fastcodedog-3.2.4}/fastcodedog/prepare/pdm_to_model/after/additional_methods.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fastcodedog-3.2.2 → fastcodedog-3.2.4}/fastcodedog/prepare/pdm_to_model/after/copy_methods.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fastcodedog-3.2.2 → fastcodedog-3.2.4}/fastcodedog/prepare/pdm_to_model/before/fill_tenant_id.py
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
|
{fastcodedog-3.2.2 → fastcodedog-3.2.4}/fastcodedog/prepare/schema_and_crud_to_api/__init__.py
RENAMED
|
File without changes
|
{fastcodedog-3.2.2 → fastcodedog-3.2.4}/fastcodedog/prepare/schema_and_crud_to_api/endpoint.py
RENAMED
|
File without changes
|
{fastcodedog-3.2.2 → fastcodedog-3.2.4}/fastcodedog/prepare/schema_and_crud_to_api/prepare.py
RENAMED
|
File without changes
|
{fastcodedog-3.2.2 → fastcodedog-3.2.4}/fastcodedog/prepare/schema_and_crud_to_api/schemas.py
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
|