ApiLogicServer 15.1.0__py3-none-any.whl → 15.1.3__py3-none-any.whl
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.
- api_logic_server_cli/api_logic_server.py +4 -2
- api_logic_server_cli/api_logic_server_info.yaml +3 -3
- api_logic_server_cli/create_from_model/model_creation_services.py +1 -1
- api_logic_server_cli/prototypes/base/readme.md +1 -1
- api_logic_server_cli/sqlacodegen_wrapper/sqlacodegen/sqlacodegen/codegen.py +7 -4
- {apilogicserver-15.1.0.dist-info → apilogicserver-15.1.3.dist-info}/METADATA +2 -2
- {apilogicserver-15.1.0.dist-info → apilogicserver-15.1.3.dist-info}/RECORD +11 -11
- {apilogicserver-15.1.0.dist-info → apilogicserver-15.1.3.dist-info}/WHEEL +0 -0
- {apilogicserver-15.1.0.dist-info → apilogicserver-15.1.3.dist-info}/entry_points.txt +0 -0
- {apilogicserver-15.1.0.dist-info → apilogicserver-15.1.3.dist-info}/licenses/LICENSE +0 -0
- {apilogicserver-15.1.0.dist-info → apilogicserver-15.1.3.dist-info}/top_level.txt +0 -0
|
@@ -8,13 +8,15 @@ ApiLogicServer CLI: given a database url, create [and run] customizable ApiLogic
|
|
|
8
8
|
* api/expose_api_models.py for a safrs api - using introspected models.py
|
|
9
9
|
* Special provisions for NW Sample, to show customizations.
|
|
10
10
|
* See end for key_module_map() quick links
|
|
11
|
-
|
|
11
|
+
|
|
12
12
|
Called from api_logic_server_cli.py, by instantiating the ProjectRun object.
|
|
13
13
|
'''
|
|
14
14
|
|
|
15
|
-
__version__ = "15.01.
|
|
15
|
+
__version__ = "15.01.03" # last public release: 15.00.65
|
|
16
16
|
recent_changes = \
|
|
17
17
|
f'\n\nRecent Changes:\n' +\
|
|
18
|
+
"\t08/17/2024 - 15.01.03: LogicBanl 01.30, with fix for copy_children[19] \n"\
|
|
19
|
+
"\t08/13/2024 - 15.01.02: Id vs ID in codegen (parent_accessor_from_fk: [#100]), pyodbc fix in blt \n"\
|
|
18
20
|
"\t08/09/2024 - 15.01.00: improved vibe instructions \n"\
|
|
19
21
|
"\t08/06/2024 - 15.00.65: instructions for custom API endpoints, behave testing \n"\
|
|
20
22
|
"\t07/20/2024 - 15.00.52: Python 3.13 compatibility fixes - psycopg2→psycopg3, SQLAlchemy 2.0+, pkg_resources→importlib.metadata. mgr dbs \n"\
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
last_created_date: August
|
|
2
|
-
last_created_project_name:
|
|
3
|
-
last_created_version: 15.
|
|
1
|
+
last_created_date: August 13, 2025 16:33:18
|
|
2
|
+
last_created_project_name: /Users/val/dev/ApiLogicServer/ApiLogicServer-dev/org_git/ApiLogicServer-src/../../build_and_test/ApiLogicServer/airport10_multi_reln
|
|
3
|
+
last_created_version: 15.01.02
|
|
@@ -848,7 +848,7 @@ class ModelCreationServices(object):
|
|
|
848
848
|
resource_attribute = ResourceAttribute(each_attribute=each_attribute,
|
|
849
849
|
resource=resource, resource_class=resource_class)
|
|
850
850
|
resource.compute_primary_key(metadata=self.metadata, resource_class=resource_class)
|
|
851
|
-
for rel_name, rel in resource_class._s_relationships.items():
|
|
851
|
+
for rel_name, rel in resource_class._s_relationships.items(): # no property Staff1
|
|
852
852
|
# relation = {}
|
|
853
853
|
# relation["direction"] = "toone" if rel.direction == MANYTOONE else "tomany"
|
|
854
854
|
if rel.direction == ONETOMANY: # process only parents of this child
|
|
@@ -463,7 +463,9 @@ class ManyToOneRelationship(Relationship):
|
|
|
463
463
|
|
|
464
464
|
if child_cls in ['Flight', 'Employee', 'TabGroup', 'CharacterClass'] and \
|
|
465
465
|
parent_cls in ['Airport', 'Department', 'Entity', 'Class']:
|
|
466
|
-
debug_stop = "interesting breakpoint"
|
|
466
|
+
debug_stop = "interesting breakpoint"
|
|
467
|
+
# Launch config 8... -- Create servers/airport from MODEL
|
|
468
|
+
# Launch config 5... -- Create OUKashrusSystem (Id *and* ID)
|
|
467
469
|
column_names = _get_column_names(constraint)
|
|
468
470
|
colname = column_names[0]
|
|
469
471
|
tablename = constraint.elements[0].column.table.name
|
|
@@ -473,11 +475,11 @@ class ManyToOneRelationship(Relationship):
|
|
|
473
475
|
if len(column_names) > 1 : # multi-column - use tablename
|
|
474
476
|
self.preferred_name = inflect_engine.singular_noun(tablename) or tablename
|
|
475
477
|
else: # single column - use column name but without '_id'
|
|
476
|
-
if ( colname.endswith('_id') or colname.endswith('_Id') ): # eg arrival_airport_id
|
|
478
|
+
if ( colname.endswith('_id') or colname.endswith('_Id') or colname.endswith('_ID') ): # eg arrival_airport_id
|
|
477
479
|
self.preferred_name = colname[:-3]
|
|
478
480
|
parent_accessor_from_fk = True
|
|
479
481
|
pass # TODO - alert: can "lowercase" parent accessor (see classic models employee )
|
|
480
|
-
elif ( colname.endswith('id') or colname.endswith('Id') ): # eg WorksForDepartmentId
|
|
482
|
+
elif ( colname.endswith('id') or colname.endswith('Id') or colname.endswith('ID') ): # eg WorksForDepartmentId
|
|
481
483
|
self.preferred_name = colname[:-2]
|
|
482
484
|
parent_accessor_from_fk = True
|
|
483
485
|
else:
|
|
@@ -494,7 +496,7 @@ class ManyToOneRelationship(Relationship):
|
|
|
494
496
|
# Handle self referential relationships
|
|
495
497
|
if child_cls == parent_cls:
|
|
496
498
|
# self.preferred_name = 'parent' if not colname.endswith('_id') else colname[:-3]
|
|
497
|
-
if colname.endswith("id") or colname.endswith("Id"):
|
|
499
|
+
if colname.endswith("id") or colname.endswith("Id")or colname.endswith("ID"):
|
|
498
500
|
self.preferred_name = colname[:-2]
|
|
499
501
|
else:
|
|
500
502
|
self.preferred_name = "parent" # hmm, why not just table name
|
|
@@ -531,6 +533,7 @@ class ManyToOneRelationship(Relationship):
|
|
|
531
533
|
|
|
532
534
|
if multi_reln_count > 0: # disambiguate multi_reln between same 2 tables (tricky!)
|
|
533
535
|
# key cases are nw (Dept/Employee) and ai/airport (Flight/Airport) and app_model_editor (Entity/TabGroup)
|
|
536
|
+
# https://apilogicserver.github.io/Docs/Data-Model-Classes/#multi-reln
|
|
534
537
|
if parent_accessor_from_fk:
|
|
535
538
|
pass # parent_accessor_name is already unique (eg, Employee.WorksForDepartment)
|
|
536
539
|
self.child_accessor_name += str(multi_reln_count)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: ApiLogicServer
|
|
3
|
-
Version: 15.1.
|
|
3
|
+
Version: 15.1.3
|
|
4
4
|
Author-email: Val Huber <apilogicserver@gmail.com>
|
|
5
5
|
License-Expression: BSD-3-Clause
|
|
6
6
|
Project-URL: Homepage, https://www.genai-logic.com
|
|
@@ -48,7 +48,7 @@ Requires-Dist: Flask-Login==0.6.2
|
|
|
48
48
|
Requires-Dist: Flask-OpenID==1.3.0
|
|
49
49
|
Requires-Dist: python-dotenv==0.15.0
|
|
50
50
|
Requires-Dist: email-validator==1.1.1
|
|
51
|
-
Requires-Dist: LogicBank>=1.
|
|
51
|
+
Requires-Dist: LogicBank>=1.30.00
|
|
52
52
|
Requires-Dist: cryptography==36.0.1
|
|
53
53
|
Requires-Dist: rsa
|
|
54
54
|
Requires-Dist: PyMySQL==1.0.3
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
api_logic_server_cli/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
2
|
-
api_logic_server_cli/api_logic_server.py,sha256=
|
|
3
|
-
api_logic_server_cli/api_logic_server_info.yaml,sha256=
|
|
2
|
+
api_logic_server_cli/api_logic_server.py,sha256=zp0DJWBVUPPrSLj8Ftn_tbC3_0ouZx54jeIVmHckt54,104196
|
|
3
|
+
api_logic_server_cli/api_logic_server_info.yaml,sha256=1nZB5njl0Ug0abJz_PQft7Jb9K6UVkkp3anYY0goMd8,235
|
|
4
4
|
api_logic_server_cli/cli.py,sha256=tlFXb3c9X1RzJttSNjVW-6L5gwGgC2MK7HGWFZXA-QQ,87355
|
|
5
5
|
api_logic_server_cli/cli_args_base.py,sha256=7cVM6BeizwttYAwUu1FUyuLuvWufvgt0TFeA8FI6tu0,3304
|
|
6
6
|
api_logic_server_cli/cli_args_project.py,sha256=I5no_fGRV_ZsK3SuttVDAaQYI4Q5zCjx6LojGkM024w,4645
|
|
@@ -14,7 +14,7 @@ api_logic_server_cli/create_from_model/api_logic_server_utils.py,sha256=H0t_hpN6
|
|
|
14
14
|
api_logic_server_cli/create_from_model/create_db_from_model.py,sha256=2H7slGnk39XOSnvL7vxrg6Ewx4bxeBJBgLo8fcXHTB4,4382
|
|
15
15
|
api_logic_server_cli/create_from_model/dbml.py,sha256=m1yRnes5DXPMQrFBFJM2CuDhIfVFywSM6nDX7k19BLU,11573
|
|
16
16
|
api_logic_server_cli/create_from_model/meta_model.py,sha256=bzkpaC0ePrxpAPiJGh5GbSrZ7N-DETL5eW6-LxcmOZs,5885
|
|
17
|
-
api_logic_server_cli/create_from_model/model_creation_services.py,sha256=
|
|
17
|
+
api_logic_server_cli/create_from_model/model_creation_services.py,sha256=zzulZ91qWfhtIkdF3yDxoXKxRaZZDrbXzPwp6s9RHxg,41501
|
|
18
18
|
api_logic_server_cli/create_from_model/ont_build.py,sha256=YRZutNtIFCuc1r73jSHJbDPtLTQZLoStCM9ShWyKG4g,67063
|
|
19
19
|
api_logic_server_cli/create_from_model/ont_create.py,sha256=Zj9kGaJ_zWJ_0sdgbWKRhJOvlkI_Ktce3M7B5ZQ5_6o,16750
|
|
20
20
|
api_logic_server_cli/create_from_model/ui_admin_creator.py,sha256=j1hZuHn70c4NA7l0zXH_PbcwH79FQPgkZh1qF_6sLyU,38071
|
|
@@ -414,7 +414,7 @@ api_logic_server_cli/prototypes/allocation/logic/declare_logic.py,sha256=Wqk1kpu
|
|
|
414
414
|
api_logic_server_cli/prototypes/allocation/test/test.sh,sha256=ndw_D7IOFTEUZxbcOL5Y-spvF8pJCe8OOSroqBfjXPM,645
|
|
415
415
|
api_logic_server_cli/prototypes/base/.gitignore,sha256=PAO98cVvjgAL_mvXCMS_Vfk7bT2Vd1-j9a8_nB2qxqs,190
|
|
416
416
|
api_logic_server_cli/prototypes/base/api_logic_server_run.py,sha256=j4a0jwPn-USqkFrCiFI34TcCTHxNOnPAW-IwMtFGWcw,7074
|
|
417
|
-
api_logic_server_cli/prototypes/base/readme.md,sha256=
|
|
417
|
+
api_logic_server_cli/prototypes/base/readme.md,sha256=FLj9PfIwBp_OBpx19MxhVgVC1Uh7_9C7WjPJTC4jZC0,12684
|
|
418
418
|
api_logic_server_cli/prototypes/base/readme_project.md,sha256=sGJuNF_Qt5ripZBXfTi0OmoV4fUxe7ySxrqcKs7DwOk,1186
|
|
419
419
|
api_logic_server_cli/prototypes/base/requirements.txt,sha256=we6X5fRBJVqN8SacwV7oPDtGk5IAiNbUDbUwCGHkCrc,107
|
|
420
420
|
api_logic_server_cli/prototypes/base/run.ps1,sha256=lrZgw8SEntPam3ZYKVzsRo7rOKSGWqgO7qUNJ3CbP44,801
|
|
@@ -2734,7 +2734,7 @@ api_logic_server_cli/sqlacodegen_wrapper/sqlacodegen/setup.cfg,sha256=BmOXcaPR0F
|
|
|
2734
2734
|
api_logic_server_cli/sqlacodegen_wrapper/sqlacodegen/setup.py,sha256=ekn0wq_leWEKgpvijFLI881EVokkaZZhfmZYSQIZquo,196
|
|
2735
2735
|
api_logic_server_cli/sqlacodegen_wrapper/sqlacodegen/tox.ini,sha256=mVlmM_uI-7K4pLs-jBfu8ZOQpHwQj8fh7LogvwjXJyE,440
|
|
2736
2736
|
api_logic_server_cli/sqlacodegen_wrapper/sqlacodegen/sqlacodegen/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
2737
|
-
api_logic_server_cli/sqlacodegen_wrapper/sqlacodegen/sqlacodegen/codegen.py,sha256=
|
|
2737
|
+
api_logic_server_cli/sqlacodegen_wrapper/sqlacodegen/sqlacodegen/codegen.py,sha256=3AwjNnHNuBG8sdvIM5Utwss_KbzUnmxoLUc0ydxbOeE,77820
|
|
2738
2738
|
api_logic_server_cli/sqlacodegen_wrapper/sqlacodegen/sqlacodegen/main.py,sha256=BX0gX5e9n5MSzE2tr3O3yRmWuv55mjDI3Z2JSACrUd4,3840
|
|
2739
2739
|
api_logic_server_cli/sqlacodegen_wrapper/sqlacodegen/sqlacodegen/als_safrs_310/delete_log.txt,sha256=gMkXWPBkd-jEb-P7UA8WkCnV8tAccBL-IhT41Jz5TRw,16390
|
|
2740
2740
|
api_logic_server_cli/sqlacodegen_wrapper/sqlacodegen/sqlacodegen/als_safrs_310/notes.txt,sha256=6KP8dOvdWsIGrpRmaueXbo_ZpD-6Edz-pOfTE80cScA,3991
|
|
@@ -2769,9 +2769,9 @@ api_logic_server_cli/tools/mini_skel/database/system/SAFRSBaseX.py,sha256=p8C7AF
|
|
|
2769
2769
|
api_logic_server_cli/tools/mini_skel/database/system/TestDataBase.py,sha256=U02SYqThsbY5g3DX7XGaiMxjZBuOpzvtPS6RfI1WQFg,371
|
|
2770
2770
|
api_logic_server_cli/tools/mini_skel/logic/declare_logic.py,sha256=fTrlHyqMeZsw_TyEXFa1VlYBL7fzjZab5ONSXO7aApo,175
|
|
2771
2771
|
api_logic_server_cli/tools/mini_skel/logic/load_verify_rules.py,sha256=Rr5bySJpYCZmNPF2h-phcPJ53nAOPcT_ohZpCD93-a0,7530
|
|
2772
|
-
apilogicserver-15.1.
|
|
2773
|
-
apilogicserver-15.1.
|
|
2774
|
-
apilogicserver-15.1.
|
|
2775
|
-
apilogicserver-15.1.
|
|
2776
|
-
apilogicserver-15.1.
|
|
2777
|
-
apilogicserver-15.1.
|
|
2772
|
+
apilogicserver-15.1.3.dist-info/licenses/LICENSE,sha256=67BS7VC-Z8GpaR3wijngQJkHWV04qJrwQArVgn9ldoI,1485
|
|
2773
|
+
apilogicserver-15.1.3.dist-info/METADATA,sha256=r3GOiWkMsdgKriIk3qDTyB1nvmZ9PtWFiH2XG9ALpjo,6652
|
|
2774
|
+
apilogicserver-15.1.3.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
2775
|
+
apilogicserver-15.1.3.dist-info/entry_points.txt,sha256=W9EVNvf09h8n6rJChmVj2gzxVQ6BXXZa2x3wri0lFGc,259
|
|
2776
|
+
apilogicserver-15.1.3.dist-info/top_level.txt,sha256=-r0AT_GEApleihg-jIh0OMvzzc0BO1RuhhOpE91H5qI,21
|
|
2777
|
+
apilogicserver-15.1.3.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|