piccolo 1.4.2__py3-none-any.whl → 1.5.1__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.
- piccolo/__init__.py +1 -1
- piccolo/apps/asgi/commands/new.py +1 -0
- piccolo/apps/asgi/commands/templates/app/_lilya_app.py.jinja +45 -0
- piccolo/apps/asgi/commands/templates/app/app.py.jinja +2 -0
- piccolo/apps/asgi/commands/templates/app/home/_lilya_endpoints.py.jinja +21 -0
- piccolo/apps/asgi/commands/templates/app/home/endpoints.py.jinja +2 -0
- piccolo/apps/asgi/commands/templates/app/home/templates/home.html.jinja_raw +5 -0
- piccolo/apps/migrations/auto/migration_manager.py +9 -9
- piccolo/apps/migrations/auto/serialisation.py +2 -4
- piccolo/apps/migrations/commands/backwards.py +9 -7
- piccolo/apps/migrations/commands/base.py +3 -3
- piccolo/apps/migrations/commands/forwards.py +3 -3
- piccolo/apps/playground/commands/run.py +1 -0
- piccolo/apps/user/tables.py +1 -0
- piccolo/columns/base.py +5 -3
- piccolo/columns/column_types.py +97 -116
- piccolo/columns/reference.py +1 -0
- piccolo/conf/apps.py +1 -2
- piccolo/query/methods/objects.py +8 -8
- piccolo/query/methods/select.py +4 -8
- piccolo/query/mixins.py +3 -3
- piccolo/query/proxy.py +3 -2
- piccolo/table.py +19 -13
- piccolo/utils/pydantic.py +6 -0
- {piccolo-1.4.2.dist-info → piccolo-1.5.1.dist-info}/METADATA +2 -2
- {piccolo-1.4.2.dist-info → piccolo-1.5.1.dist-info}/RECORD +35 -33
- tests/columns/test_array.py +22 -0
- tests/columns/test_reference.py +1 -0
- tests/conf/example.py +1 -0
- tests/table/test_metaclass.py +12 -0
- tests/utils/test_pydantic.py +28 -0
- {piccolo-1.4.2.dist-info → piccolo-1.5.1.dist-info}/LICENSE +0 -0
- {piccolo-1.4.2.dist-info → piccolo-1.5.1.dist-info}/WHEEL +0 -0
- {piccolo-1.4.2.dist-info → piccolo-1.5.1.dist-info}/entry_points.txt +0 -0
- {piccolo-1.4.2.dist-info → piccolo-1.5.1.dist-info}/top_level.txt +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: piccolo
|
3
|
-
Version: 1.
|
3
|
+
Version: 1.5.1
|
4
4
|
Summary: A fast, user friendly ORM and query builder which supports asyncio.
|
5
5
|
Home-page: https://github.com/piccolo-orm/piccolo
|
6
6
|
Author: Daniel Townsend
|
@@ -144,7 +144,7 @@ Let Piccolo scaffold you an ASGI web app, using Piccolo as the ORM:
|
|
144
144
|
piccolo asgi new
|
145
145
|
```
|
146
146
|
|
147
|
-
[Starlette](https://www.starlette.io/), [FastAPI](https://fastapi.tiangolo.com/), [BlackSheep](https://www.neoteroi.dev/blacksheep/)
|
147
|
+
[Starlette](https://www.starlette.io/), [FastAPI](https://fastapi.tiangolo.com/), [BlackSheep](https://www.neoteroi.dev/blacksheep/), [Litestar](https://litestar.dev/), [Esmerald](https://esmerald.dev/) and [Lilya](https://lilya.dev) are currently supported.
|
148
148
|
|
149
149
|
## Are you a Django user?
|
150
150
|
|
@@ -1,10 +1,10 @@
|
|
1
|
-
piccolo/__init__.py,sha256=
|
1
|
+
piccolo/__init__.py,sha256=fhNN-7ULy_9pNKoacDRvSuTI6i1H6WO1D2dUk7PEiqQ,22
|
2
2
|
piccolo/custom_types.py,sha256=7HMQAze-5mieNLfbQ5QgbRQgR2abR7ol0qehv2SqROY,604
|
3
3
|
piccolo/main.py,sha256=1VsFV67FWTUikPTysp64Fmgd9QBVa_9wcwKfwj2UCEA,5117
|
4
4
|
piccolo/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
5
5
|
piccolo/querystring.py,sha256=YZkenGtG4mVSUdM7-zZXedxgIzXOnNOZf16AIqMr2n0,5863
|
6
6
|
piccolo/schema.py,sha256=aWPuZxEulgBRD5NTqKN-RAZchxu-PoIrn0iFrWGZuq4,7731
|
7
|
-
piccolo/table.py,sha256=
|
7
|
+
piccolo/table.py,sha256=w582fj4V66e-EYbF5PPO4TWYCOdIzzylPsc4rNWhPEs,50001
|
8
8
|
piccolo/table_reflection.py,sha256=jrN1nHerDJ4tU09GtNN3hz7ap-7rXnSUjljFO6LB2H0,7094
|
9
9
|
piccolo/apps/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
10
10
|
piccolo/apps/app/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
@@ -17,14 +17,15 @@ piccolo/apps/app/commands/templates/tables.py.jinja,sha256=revzdrvDDwe78VedBKz0z
|
|
17
17
|
piccolo/apps/asgi/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
18
18
|
piccolo/apps/asgi/piccolo_app.py,sha256=7VUvqQJbB-ScO0A62S6MiJmQL9F5DS-SdlqlDLbAblE,217
|
19
19
|
piccolo/apps/asgi/commands/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
20
|
-
piccolo/apps/asgi/commands/new.py,sha256=
|
20
|
+
piccolo/apps/asgi/commands/new.py,sha256=ZyYgwpBXb0t-0KQraeja6Y9ANjGEdZCXpu9bmm7_cPc,4230
|
21
21
|
piccolo/apps/asgi/commands/templates/app/README.md.jinja,sha256=As3gNEZt9qcRmTVkjCzNtXJ8r4-3g0fCSe7Q-P39ezI,214
|
22
22
|
piccolo/apps/asgi/commands/templates/app/_blacksheep_app.py.jinja,sha256=bgAGe0a9nWk0LAqK3VNDhPcKGqg0z8V-eIX2YmMoZLk,3117
|
23
23
|
piccolo/apps/asgi/commands/templates/app/_esmerald_app.py.jinja,sha256=S-oYY6OFhwJA8PEYnrklQUkqtot3aXTmd7QGrW8Ufn4,2670
|
24
24
|
piccolo/apps/asgi/commands/templates/app/_fastapi_app.py.jinja,sha256=cCmRVAN8gw6zfHBcLI_NxapwN7LGM5QSXM7K94imDh8,2436
|
25
|
+
piccolo/apps/asgi/commands/templates/app/_lilya_app.py.jinja,sha256=8rV1p-POGHkFIqvHvlE5wWwWPZweuSnMJhwreLMgLo8,1259
|
25
26
|
piccolo/apps/asgi/commands/templates/app/_litestar_app.py.jinja,sha256=oMH5KXoEYhf9qgXNj2Kepc6prps1MQECufdUduaiwe4,2815
|
26
27
|
piccolo/apps/asgi/commands/templates/app/_starlette_app.py.jinja,sha256=YvNUlJuTd4mj-pm3WQKbQq3w3x3VfDb_Wz6aQLUsORo,1271
|
27
|
-
piccolo/apps/asgi/commands/templates/app/app.py.jinja,sha256=
|
28
|
+
piccolo/apps/asgi/commands/templates/app/app.py.jinja,sha256=gROY-LbHl8NtHDM_ntkI7Rjcbtg2ypDZ1FunBvpdjE4,458
|
28
29
|
piccolo/apps/asgi/commands/templates/app/conftest.py.jinja,sha256=ZG1pRVMv3LhIfOsO3_08c_fF3EV4_EApuDHiIFFPJdk,497
|
29
30
|
piccolo/apps/asgi/commands/templates/app/main.py.jinja,sha256=azwXyWZGkrIbZv5bZF_4Tvbly7AXkw5yFWGCHYImGeo,421
|
30
31
|
piccolo/apps/asgi/commands/templates/app/piccolo_conf.py.jinja,sha256=f9Nb08_yipi0_mDUYrUvVoGCz7MRRS5QjCdUGBHN760,379
|
@@ -33,14 +34,15 @@ piccolo/apps/asgi/commands/templates/app/requirements.txt.jinja,sha256=w4FXnehMN
|
|
33
34
|
piccolo/apps/asgi/commands/templates/app/home/__init__.py.jinja,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
34
35
|
piccolo/apps/asgi/commands/templates/app/home/_blacksheep_endpoints.py.jinja,sha256=Rri_xzDkl87G5ME74qTxY25cwKIKufuzgkRsy__mNts,510
|
35
36
|
piccolo/apps/asgi/commands/templates/app/home/_esmerald_endpoints.py.jinja,sha256=D_Slfc3IfTyBgq_VUIG5_AW5pVvvSqn-YGQspxMJNsE,499
|
37
|
+
piccolo/apps/asgi/commands/templates/app/home/_lilya_endpoints.py.jinja,sha256=nKSJ9VPTUTaLD9oDqAUseNuQkcPLBxShPAEfZK15rSE,490
|
36
38
|
piccolo/apps/asgi/commands/templates/app/home/_litestar_endpoints.py.jinja,sha256=zXbYXDXFeeOCXmWBa_QK0kWGlBnv6T_A2jOHuvp9oCs,553
|
37
39
|
piccolo/apps/asgi/commands/templates/app/home/_starlette_endpoints.py.jinja,sha256=KEjNEUKiZNBIWYAt9EgPHe4yCbkKLtlhaCBce9YI-RQ,498
|
38
|
-
piccolo/apps/asgi/commands/templates/app/home/endpoints.py.jinja,sha256=
|
40
|
+
piccolo/apps/asgi/commands/templates/app/home/endpoints.py.jinja,sha256=Vc7pllhzKeNyj1XPzqdRH1AUpv7D4pooBIrUMt6gK7I,428
|
39
41
|
piccolo/apps/asgi/commands/templates/app/home/piccolo_app.py.jinja,sha256=4gETiW9ukTNsomeJOvrRkqPbToZ_FU0b3LsNIaEYyP8,505
|
40
42
|
piccolo/apps/asgi/commands/templates/app/home/tables.py.jinja,sha256=wk34RAsuoFn5iJ4OHlQzUqgatq6QB2G9tFE0BYkaers,197
|
41
43
|
piccolo/apps/asgi/commands/templates/app/home/piccolo_migrations/README.md,sha256=ji6UOtHvzHX-eS_qhhKTN36ZXNZ7QwtjwjdE4Qgm35A,59
|
42
44
|
piccolo/apps/asgi/commands/templates/app/home/templates/base.html.jinja_raw,sha256=3RqiNuyAap_P-xNK3uhNaQQ6rC365VzPmRqmmXSLO8o,451
|
43
|
-
piccolo/apps/asgi/commands/templates/app/home/templates/home.html.jinja_raw,sha256=
|
45
|
+
piccolo/apps/asgi/commands/templates/app/home/templates/home.html.jinja_raw,sha256=QJI0MY0hydMdqPg9YcW7XmmccJ1PyHvOSRIvMJX3ij0,2637
|
44
46
|
piccolo/apps/asgi/commands/templates/app/static/favicon.ico,sha256=IvcgeJHObd9kj2mNIXkJdXYxMU8OaOymyYQWnWfbtHo,7406
|
45
47
|
piccolo/apps/asgi/commands/templates/app/static/main.css,sha256=vudarPLglQ6NOgJiNeU2x0yQl0DiWScqb09QZv2wAzM,1056
|
46
48
|
piccolo/apps/fixtures/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
@@ -58,24 +60,24 @@ piccolo/apps/migrations/piccolo_app.py,sha256=1EcS2ComBPCaMCC2C3WaPR_GqLwt3XiIJN
|
|
58
60
|
piccolo/apps/migrations/tables.py,sha256=jqBnK-Rk545v1Eu6GaLHTVz7-uwBTUnz2m58OA-mxTc,799
|
59
61
|
piccolo/apps/migrations/auto/__init__.py,sha256=5bgdh5EsROSvq4rrZAxpzmXiJNj5LJKwf06dxI2LZsc,191
|
60
62
|
piccolo/apps/migrations/auto/diffable_table.py,sha256=FJ_D7FvL_vaThgIY-zFyW_kFmReOI12saM3DFcaAvfw,7058
|
61
|
-
piccolo/apps/migrations/auto/migration_manager.py,sha256=
|
63
|
+
piccolo/apps/migrations/auto/migration_manager.py,sha256=tnbQaB46v3bXVSVTkZUExH2KzknZfgM427j4jg68xC8,35096
|
62
64
|
piccolo/apps/migrations/auto/operations.py,sha256=169IrCLR3FtTRxHsEHNg6dTG45lcEM7Aoyy3SwgX_hU,1329
|
63
65
|
piccolo/apps/migrations/auto/schema_differ.py,sha256=VA1rK-_wNSdyZZgfA3ZOlpVGJCcvLyouKtT9k2YKhiA,26266
|
64
66
|
piccolo/apps/migrations/auto/schema_snapshot.py,sha256=ZqUg4NpChOeoACKF2gkhqsz1BW3wOWFnzJCccq-CNNQ,4719
|
65
|
-
piccolo/apps/migrations/auto/serialisation.py,sha256=
|
67
|
+
piccolo/apps/migrations/auto/serialisation.py,sha256=nlomUL-TwD_7Gjb8ttRZfIwn9VbNoEmRmD3LElP5e0k,23927
|
66
68
|
piccolo/apps/migrations/auto/serialisation_legacy.py,sha256=Edqx3YL0RGTsTHLNkHRNnXdfX6ut1h65U7UX2cI_BkE,1752
|
67
69
|
piccolo/apps/migrations/commands/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
68
|
-
piccolo/apps/migrations/commands/backwards.py,sha256=
|
69
|
-
piccolo/apps/migrations/commands/base.py,sha256=
|
70
|
+
piccolo/apps/migrations/commands/backwards.py,sha256=i96eR6_P7IJQDtbaPmIleDg0nCoZubP2P2hNOLtbbT8,6615
|
71
|
+
piccolo/apps/migrations/commands/base.py,sha256=v-uEfoSNpiHJivBO1YUc3yyDqwXyADIl53xNo_LnRZM,4475
|
70
72
|
piccolo/apps/migrations/commands/check.py,sha256=VdaIjs3FFy_nwN6kjGKMoVQ4zp1Bdoej756UJBj79Pk,3982
|
71
73
|
piccolo/apps/migrations/commands/clean.py,sha256=XD4xqtqkL5ZqnwIghzo5Yo2UnBAeznBVyrTiw6SnaCQ,2855
|
72
|
-
piccolo/apps/migrations/commands/forwards.py,sha256=
|
74
|
+
piccolo/apps/migrations/commands/forwards.py,sha256=WLRgIZ19pShsuk8dk4emJkxDz_lRVI27TBZqKjHXS2A,5374
|
73
75
|
piccolo/apps/migrations/commands/new.py,sha256=WL8skWg-ZPOfkQHPgDbq388qdpvvhTZaXV6y1tGzEoc,7892
|
74
76
|
piccolo/apps/migrations/commands/templates/migration.py.jinja,sha256=wMC8RTIcQj3mjZh3FhuxuIfsqftZ5ivraO9fg-H6fbI,681
|
75
77
|
piccolo/apps/playground/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
76
78
|
piccolo/apps/playground/piccolo_app.py,sha256=zs6nGxt-lgUF8nEwI0uDTNZDKQqjZaNDH8le5RqrMNE,222
|
77
79
|
piccolo/apps/playground/commands/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
78
|
-
piccolo/apps/playground/commands/run.py,sha256=
|
80
|
+
piccolo/apps/playground/commands/run.py,sha256=ajXYy2UqU47QGQ3vmXbSvpwR8h7kbMV8W4QFCLJBHhE,7351
|
79
81
|
piccolo/apps/project/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
80
82
|
piccolo/apps/project/piccolo_app.py,sha256=mT3O0m3QcCfS0oOr3jt0QZ9TX6gUavGPjJeNn2C_fdM,220
|
81
83
|
piccolo/apps/project/commands/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
@@ -102,7 +104,7 @@ piccolo/apps/tester/commands/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NM
|
|
102
104
|
piccolo/apps/tester/commands/run.py,sha256=phFxim2ogARAviW-YT11y9F-L5SJxSioAIepUzQeAWU,2431
|
103
105
|
piccolo/apps/user/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
104
106
|
piccolo/apps/user/piccolo_app.py,sha256=yfw1J9FEnBWdgGdUdNMnqp06Wzm5_s9TO2r5KLchrLM,842
|
105
|
-
piccolo/apps/user/tables.py,sha256=
|
107
|
+
piccolo/apps/user/tables.py,sha256=ZSXtOC9OANCKC6cq5ZCj3CqRwraibFDwtf1VVIBfmKQ,8954
|
106
108
|
piccolo/apps/user/commands/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
107
109
|
piccolo/apps/user/commands/change_password.py,sha256=F7mlhtTUY7uENSK8vds5oibIDJTz7QBQdrl7EB-lF9Q,649
|
108
110
|
piccolo/apps/user/commands/change_permissions.py,sha256=LScsKJUMJqIi54cZ1SgS9Wb356KB0t7smu94FDXLfVk,1463
|
@@ -113,14 +115,14 @@ piccolo/apps/user/piccolo_migrations/2020-06-11T21-38-55.py,sha256=JG_LFPrEljnSE
|
|
113
115
|
piccolo/apps/user/piccolo_migrations/2021-04-30T16-14-15.py,sha256=Y_Dj4ROSxjnPsRDqcnpWeyk8UpF8c80T08_O2uq-GoA,1219
|
114
116
|
piccolo/apps/user/piccolo_migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
115
117
|
piccolo/columns/__init__.py,sha256=OYhO_n9anMiU9nL-K6ATq9FhAtm8RyMpqYQ7fTVbhxI,1120
|
116
|
-
piccolo/columns/base.py,sha256=
|
118
|
+
piccolo/columns/base.py,sha256=7ZcqdJc1GuqmVPDHJlEkCHnEIKkXms0BlkS4fLIx80E,31620
|
117
119
|
piccolo/columns/choices.py,sha256=-HNQuk9vMmVZIPZ5PMeXGTfr23o4nzKPSAkvcG1k0y8,723
|
118
|
-
piccolo/columns/column_types.py,sha256=
|
120
|
+
piccolo/columns/column_types.py,sha256=REqafGESK3Zu8YbuCHM2v3R_KC-2OjGZs7D7VppH2KM,81013
|
119
121
|
piccolo/columns/combination.py,sha256=vMXC2dfY7pvnCFhsT71XFVyb4gdQzfRsCMaiduu04Ss,6900
|
120
122
|
piccolo/columns/indexes.py,sha256=NfNok3v_791jgDlN28KmhP9ZCjl6031BXmjxV3ovXJk,372
|
121
123
|
piccolo/columns/m2m.py,sha256=BtcMM2FG7B442DifrbPxCNh2Wa4ZOQ-4ezEWYD0trVg,14365
|
122
124
|
piccolo/columns/readable.py,sha256=vKIEc_vWxKo4GSPOeJZz-q5a1i4DNaoBcCNG_i_2OSA,1485
|
123
|
-
piccolo/columns/reference.py,sha256
|
125
|
+
piccolo/columns/reference.py,sha256=FqE9rpMBMwNNkKXR3Wi4ce-fyT2Vh4KM8YpdC21s6gg,3574
|
124
126
|
piccolo/columns/defaults/__init__.py,sha256=7hpB13baEJgc1zbZjRKDFr-5hltxM2VGj8KnKfOiS8c,145
|
125
127
|
piccolo/columns/defaults/base.py,sha256=kxh5jgU9G1zpcncmqISZgwMeHnNPBgNCvuqPPQYO_zs,1854
|
126
128
|
piccolo/columns/defaults/date.py,sha256=7tW_tTfsnzU8LXn9Qkrtk8OPyi80SESa-dY_UMlNTp0,2455
|
@@ -135,7 +137,7 @@ piccolo/columns/operators/comparison.py,sha256=7QyBNQypMP5uG--Vnq3wI1tuAJ0pNO3hG
|
|
135
137
|
piccolo/columns/operators/math.py,sha256=knsUZzYOVdsFn3bTS0XC0ZzfNObeJcMvZ8Q_QwmGxjU,325
|
136
138
|
piccolo/columns/operators/string.py,sha256=M5ifxHP-ttJaE_wYCl23W5sJof4i5S5_QDIOv34VxDM,142
|
137
139
|
piccolo/conf/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
138
|
-
piccolo/conf/apps.py,sha256=
|
140
|
+
piccolo/conf/apps.py,sha256=CtyysnDNkf9ar7Zue12vrulm6npBuxe5jo2AvNdLoQk,18904
|
139
141
|
piccolo/engine/__init__.py,sha256=Z0QR5NAA9jTFenY7pEJv1C8jZXBaFZojBUR3z3nx1cw,283
|
140
142
|
piccolo/engine/base.py,sha256=48swk-AFcsRjFUichSwX6HCagDMVbP0mFB1ueQCXO-o,4881
|
141
143
|
piccolo/engine/cockroach.py,sha256=7anXR3JPpGuR6-OpDLHM0FxKZhjuTvbRUuZV6fv9lXU,1556
|
@@ -145,8 +147,8 @@ piccolo/engine/postgres.py,sha256=zUY6x52QrZ8waiqEUuqlVFiXyzAXrsFi3PY5EJnv3DM,18
|
|
145
147
|
piccolo/engine/sqlite.py,sha256=h5RrrDqy-28ck8L9SkLURfZWFSTcVdojTLDt1w8cTgk,22099
|
146
148
|
piccolo/query/__init__.py,sha256=1R0cRo8xoycUTFbSZzmW5rndH-wW4DDqsWJQgTELiWU,683
|
147
149
|
piccolo/query/base.py,sha256=dcYkEy_fhOUoiRn7u7lVsoWUKe90Z7jDu5zir1teRB8,15397
|
148
|
-
piccolo/query/mixins.py,sha256=
|
149
|
-
piccolo/query/proxy.py,sha256=
|
150
|
+
piccolo/query/mixins.py,sha256=3oFksbYSaNGz_F7XJRhTTMHK4Pdf8-FUfDMpdy7rsNM,21639
|
151
|
+
piccolo/query/proxy.py,sha256=Yq4jNc7IWJvdeO3u7_7iPyRy2WhVj8KsIUcIYHBIi9Q,1839
|
150
152
|
piccolo/query/methods/__init__.py,sha256=_PfGUdOd6AsKq1sqXeZUHhESHE-e1cNpwFr8Lyz7QoY,421
|
151
153
|
piccolo/query/methods/alter.py,sha256=AI9YkJeip2EitrWJN_TDExXhA8HGAG3XuDz1NR-KirQ,16728
|
152
154
|
piccolo/query/methods/count.py,sha256=vSwn52IG0wlhPC6L-jYVlCsD4BPb2EkGHGwWn7z7gH4,1717
|
@@ -157,10 +159,10 @@ piccolo/query/methods/drop_index.py,sha256=SOX5wfm-Tbb5TrN6kaLRVHUWdEhyrmCQwF33J
|
|
157
159
|
piccolo/query/methods/exists.py,sha256=LAeWpGKEMYZJeNGEcxbucxWDxAjn84jduNz2ZjzukPc,1181
|
158
160
|
piccolo/query/methods/indexes.py,sha256=J-QUqaBJwpgahskUH0Cu0Mq7zEKcfVAtDsUVIVX-C4c,943
|
159
161
|
piccolo/query/methods/insert.py,sha256=ssLJ_wn08KnOwwr7t-VILyn1P4hrvM63CfPIcAJWT5k,4701
|
160
|
-
piccolo/query/methods/objects.py,sha256=
|
162
|
+
piccolo/query/methods/objects.py,sha256=4QFyK03sa0RXIvNCr8cl2RpvpxuO6DVeJ1vxGNwBNLM,11705
|
161
163
|
piccolo/query/methods/raw.py,sha256=VhYpCB52mZk4zqFTsqK5CHKTDGskUjISXTBV7UjohmA,600
|
162
164
|
piccolo/query/methods/refresh.py,sha256=P1Eo_HYU_L7kcGM_cvDDgyLi1boCXY7Pc4tv_eDAzvc,2769
|
163
|
-
piccolo/query/methods/select.py,sha256=
|
165
|
+
piccolo/query/methods/select.py,sha256=qP-EnhdcuQOmOQ_ADnnYvA4OFSnmU7avCiQ8yoP5OHs,26883
|
164
166
|
piccolo/query/methods/table_exists.py,sha256=0yb3n6Jd2ovSBWlZ-gl00K4E7Jnbj7J8qAAX5d7hvNk,1259
|
165
167
|
piccolo/query/methods/update.py,sha256=K0sq7XlIDr2mw5CwCvD4s9-jLcpYG6MI2hGScRGmdPc,3683
|
166
168
|
piccolo/testing/__init__.py,sha256=pRFSqRInfx95AakOq54atmvqoB-ue073q2aR8u8zR40,83
|
@@ -174,7 +176,7 @@ piccolo/utils/list.py,sha256=4hPGiksJWxL226W7gyYBcqVGgMTgVa2jP8zvalc3zw8,1541
|
|
174
176
|
piccolo/utils/naming.py,sha256=d7_mMscguK799RMhxFDifRgn8Ply5wiy2k1KkP22WUs,276
|
175
177
|
piccolo/utils/objects.py,sha256=NjhfH57Q__1xSf4gvLtZFle3Lp0PiqPR7AcsVhkA3MY,1631
|
176
178
|
piccolo/utils/printing.py,sha256=5VWNSfOrIGPh1VM-7fd4K18RGCYk0FQ5o-D4aLhzXZE,1748
|
177
|
-
piccolo/utils/pydantic.py,sha256=
|
179
|
+
piccolo/utils/pydantic.py,sha256=_8jzsZQioBIziriMJauma2Fto8jhP0qoi4mob2LM-NA,12328
|
178
180
|
piccolo/utils/repr.py,sha256=K3w-TAP9WPx8tbAIB2XDab_C4PHsPrB9TzwWfOHa4cc,787
|
179
181
|
piccolo/utils/sql_values.py,sha256=pGXmVTw6pWr8q7QA4xs7NiKSwjBzhN--3HXVjQv2SQQ,1749
|
180
182
|
piccolo/utils/sync.py,sha256=j9Abkxn5HHS6HyvfpMzb1zV_teTkFHVhaIxu9rrSwSU,819
|
@@ -235,7 +237,7 @@ tests/apps/user/commands/test_change_permissions.py,sha256=uVKEiT1EKot3VA2TDETdQ
|
|
235
237
|
tests/apps/user/commands/test_create.py,sha256=iJ3Tti62rHwvdcTwNXrc5JPam6vR1qxKRdMN456vm3o,2250
|
236
238
|
tests/apps/user/commands/test_list.py,sha256=ipPfGdW6fH7q-Jc7JcYUvlioGmH9GQU0WImZGC2m-XQ,2840
|
237
239
|
tests/columns/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
238
|
-
tests/columns/test_array.py,sha256=
|
240
|
+
tests/columns/test_array.py,sha256=R6dnUBGcMHi5pVhczI4ydWpXsu2FqRASu6KtkhDWfZo,6660
|
239
241
|
tests/columns/test_base.py,sha256=CTqCNcrqAJTjLXe3MCZgTczrmB3jcVRcOpU4FilpLoQ,3918
|
240
242
|
tests/columns/test_bigint.py,sha256=a0B4y1H02ww5qaW574X2lyenbY6o29ztOhiaqybPC0c,1149
|
241
243
|
tests/columns/test_boolean.py,sha256=kDESp6FnRtSZhuqIu0dBRwKMSpS5TFbbs3sz2MyZSs8,1720
|
@@ -253,7 +255,7 @@ tests/columns/test_numeric.py,sha256=ukh7rW3uAOQmLV9m36uyHcwC9te1SLKwUrh4KDXIEbc
|
|
253
255
|
tests/columns/test_primary_key.py,sha256=6kKYs5qxIe0dJ7FQIFa-7c4LAsPQtiZbBviUiVoaTd0,5572
|
254
256
|
tests/columns/test_readable.py,sha256=kMuge5X_PfVeE1PjStwEHY-W0zwrxVBXV0CiW2Gw7kE,802
|
255
257
|
tests/columns/test_real.py,sha256=iM49DhFS2HaDX88NgelJumT-FPqqnVP84Z2m_KfnnQQ,606
|
256
|
-
tests/columns/test_reference.py,sha256=
|
258
|
+
tests/columns/test_reference.py,sha256=I_gjICtJ7bE2cBrmCv-kz25AvI922A3pizRVIhHpzSE,1508
|
257
259
|
tests/columns/test_reserved_column_names.py,sha256=NxkrZevxb1GV2fYoWKUVPscCBP39qgpiTyqfBxc8wag,1514
|
258
260
|
tests/columns/test_smallint.py,sha256=5pknplEbg6o03xJyrcYBRuV5qarOp3TAfR3OKobiaqw,1115
|
259
261
|
tests/columns/test_time.py,sha256=PfN-1x0eIPu2ULljbhIVJdyrcGXLOUQww_NOSHZXdZI,1810
|
@@ -266,7 +268,7 @@ tests/columns/m2m/base.py,sha256=uH92ECQuY5AjpQXPySwrlruZPZzB4LH2V2FUSXmHRLQ,145
|
|
266
268
|
tests/columns/m2m/test_m2m.py,sha256=LtNsHQ8xAzBFLiZVZhWEB56zu25FnaWtzJ62FZH3heI,12647
|
267
269
|
tests/columns/m2m/test_m2m_schema.py,sha256=oxu7eAjFFpDjnq9Eq-5OTNmlnsEIMFWx18OItfpVs-s,339
|
268
270
|
tests/conf/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
269
|
-
tests/conf/example.py,sha256=
|
271
|
+
tests/conf/example.py,sha256=K8sTttLpEac8rQlOLDY500IGkHj3P3NoyFbCMnT1EqY,347
|
270
272
|
tests/conf/test_apps.py,sha256=PrU4SRY0HvADGre5pMpALGmbWxPnydBug5ejSYf1e88,8461
|
271
273
|
tests/engine/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
272
274
|
tests/engine/test_extra_nodes.py,sha256=xW5gflHzM6ou26DqRSAZoaAbYVzF1IuMkW3vzNmB954,1298
|
@@ -314,7 +316,7 @@ tests/table/test_inheritance.py,sha256=AAkhEhhixVGweGe7ckzj-yypW-cj6D88Cca4-pjkw
|
|
314
316
|
tests/table/test_insert.py,sha256=-xaoL6wTNB6UImiCk9NQKQ-B21l96H-9tN2_iEgXu5A,13695
|
315
317
|
tests/table/test_join.py,sha256=Ukgvjc8NweBGHM7fVFytGQYG9P9thRaMeEvWXYs2Qes,15910
|
316
318
|
tests/table/test_join_on.py,sha256=cdAV39JwHi0kIas2p9cw7mcsUv6mKLZD--_SUA0zLfI,2771
|
317
|
-
tests/table/test_metaclass.py,sha256=
|
319
|
+
tests/table/test_metaclass.py,sha256=pMv0PHh-2a9p74bweQXCXnq1OFsJ7Gk0uWRFdCTMf58,4123
|
318
320
|
tests/table/test_objects.py,sha256=bir86ks-Ngy8x9Eu9bekOrh6twBYdEkIgTdbBWY6x9s,8187
|
319
321
|
tests/table/test_output.py,sha256=_9DydB4bt8GOtzgx7xYrAs6KG8EwRTcZ45EaAHMdEBk,3049
|
320
322
|
tests/table/test_raw.py,sha256=9PTvYngQi41nYd5lKzkJdTqsEcwrdOXcvZjq-W26CwQ,1683
|
@@ -343,14 +345,14 @@ tests/utils/test_lazy_loader.py,sha256=wDWhlV2IR6RuTaYCI5eWesz465WqIscYEJjwWnPrh
|
|
343
345
|
tests/utils/test_list.py,sha256=25UoStmrYS_JDOKsXYqTDc3FUkOe3dUcy51r0I6grK0,769
|
344
346
|
tests/utils/test_naming.py,sha256=ncJdzkMHSVFo2YQLkRhY93WJ8_W_j2pW9tHHL_ZgQcs,661
|
345
347
|
tests/utils/test_printing.py,sha256=W8pQyWX2pEkLdMYWxtibFXJnI4MVsb6XMOTo3DZUuZc,668
|
346
|
-
tests/utils/test_pydantic.py,sha256=
|
348
|
+
tests/utils/test_pydantic.py,sha256=PU7y34fZNGagJvw78PV4AJ-4SrI6rRxevjIJxIkZE-k,26623
|
347
349
|
tests/utils/test_sql_values.py,sha256=vzxRmy16FfLZPH-sAQexBvsF9MXB8n4smr14qoEOS5E,2535
|
348
350
|
tests/utils/test_sync.py,sha256=9ytVo56y2vPQePvTeIi9lHIouEhWJbodl1TmzkGFrSo,799
|
349
351
|
tests/utils/test_table_reflection.py,sha256=SIzuat-IpcVj1GCFyOWKShI8YkhdOPPFH7qVrvfyPNE,3794
|
350
352
|
tests/utils/test_warnings.py,sha256=NvSC_cvJ6uZcwAGf1m-hLzETXCqprXELL8zg3TNLVMw,269
|
351
|
-
piccolo-1.
|
352
|
-
piccolo-1.
|
353
|
-
piccolo-1.
|
354
|
-
piccolo-1.
|
355
|
-
piccolo-1.
|
356
|
-
piccolo-1.
|
353
|
+
piccolo-1.5.1.dist-info/LICENSE,sha256=zFIpi-16uIJ420UMIG75NU0JbDBykvrdnXcj5U_EYBI,1059
|
354
|
+
piccolo-1.5.1.dist-info/METADATA,sha256=yWYssQ8mhB4JiWPgB5P4td5YAvYoqZX2l11bfp97LLI,5177
|
355
|
+
piccolo-1.5.1.dist-info/WHEEL,sha256=00yskusixUoUt5ob_CiUp6LsnN5lqzTJpoqOFg_FVIc,92
|
356
|
+
piccolo-1.5.1.dist-info/entry_points.txt,sha256=SJPHET4Fi1bN5F3WqcKkv9SClK3_F1I7m4eQjk6AFh0,46
|
357
|
+
piccolo-1.5.1.dist-info/top_level.txt,sha256=-SR74VGbk43VoPy1HH-mHm97yoGukLK87HE5kdBW6qM,24
|
358
|
+
piccolo-1.5.1.dist-info/RECORD,,
|
tests/columns/test_array.py
CHANGED
@@ -200,3 +200,25 @@ class TestNestedArray(TestCase):
|
|
200
200
|
row = NestedArrayTable.objects().first().run_sync()
|
201
201
|
assert row is not None
|
202
202
|
self.assertEqual(row.value, [[1, 2, 3], [4, 5, 6]])
|
203
|
+
|
204
|
+
|
205
|
+
class TestGetDimensions(TestCase):
|
206
|
+
def test_get_dimensions(self):
|
207
|
+
"""
|
208
|
+
Make sure that `_get_dimensions` returns the correct value.
|
209
|
+
"""
|
210
|
+
self.assertEqual(Array(Integer())._get_dimensions(), 1)
|
211
|
+
self.assertEqual(Array(Array(Integer()))._get_dimensions(), 2)
|
212
|
+
self.assertEqual(Array(Array(Array(Integer())))._get_dimensions(), 3)
|
213
|
+
|
214
|
+
|
215
|
+
class TestGetInnerValueType(TestCase):
|
216
|
+
def test_get_inner_value_type(self):
|
217
|
+
"""
|
218
|
+
Make sure that `_get_inner_value_type` returns the correct base type.
|
219
|
+
"""
|
220
|
+
self.assertEqual(Array(Integer())._get_inner_value_type(), int)
|
221
|
+
self.assertEqual(Array(Array(Integer()))._get_inner_value_type(), int)
|
222
|
+
self.assertEqual(
|
223
|
+
Array(Array(Array(Integer())))._get_inner_value_type(), int
|
224
|
+
)
|
tests/columns/test_reference.py
CHANGED
tests/conf/example.py
CHANGED
@@ -2,6 +2,7 @@
|
|
2
2
|
This file is used by test_apps.py to make sure we can exclude imported
|
3
3
|
``Table`` subclasses when using ``table_finder``.
|
4
4
|
"""
|
5
|
+
|
5
6
|
from piccolo.apps.user.tables import BaseUser
|
6
7
|
from piccolo.columns.column_types import ForeignKey, Varchar
|
7
8
|
from piccolo.table import Table
|
tests/table/test_metaclass.py
CHANGED
@@ -5,6 +5,7 @@ from piccolo.columns import Secret
|
|
5
5
|
from piccolo.columns.column_types import (
|
6
6
|
JSON,
|
7
7
|
JSONB,
|
8
|
+
Array,
|
8
9
|
Email,
|
9
10
|
ForeignKey,
|
10
11
|
Varchar,
|
@@ -132,6 +133,17 @@ class TestMetaClass(TestCase):
|
|
132
133
|
|
133
134
|
self.assertEqual(MyTable._meta.email_columns, [MyTable.column_a])
|
134
135
|
|
136
|
+
def test_arry_columns(self):
|
137
|
+
"""
|
138
|
+
Make sure ``TableMeta.array_columns`` are setup correctly.
|
139
|
+
"""
|
140
|
+
|
141
|
+
class MyTable(Table):
|
142
|
+
column_a = Array(Varchar())
|
143
|
+
column_b = Varchar()
|
144
|
+
|
145
|
+
self.assertEqual(MyTable._meta.array_columns, [MyTable.column_a])
|
146
|
+
|
135
147
|
def test_id_column(self):
|
136
148
|
"""
|
137
149
|
Makes sure an id column is added.
|
tests/utils/test_pydantic.py
CHANGED
@@ -329,6 +329,34 @@ class TestTableHelpText(TestCase):
|
|
329
329
|
)
|
330
330
|
|
331
331
|
|
332
|
+
class TestUniqueColumn(TestCase):
|
333
|
+
def test_unique_column_true(self):
|
334
|
+
class Director(Table):
|
335
|
+
name = Varchar(unique=True)
|
336
|
+
|
337
|
+
pydantic_model = create_pydantic_model(table=Director)
|
338
|
+
|
339
|
+
self.assertEqual(
|
340
|
+
pydantic_model.model_json_schema()["properties"]["name"]["extra"][
|
341
|
+
"unique"
|
342
|
+
],
|
343
|
+
True,
|
344
|
+
)
|
345
|
+
|
346
|
+
def test_unique_column_false(self):
|
347
|
+
class Director(Table):
|
348
|
+
name = Varchar()
|
349
|
+
|
350
|
+
pydantic_model = create_pydantic_model(table=Director)
|
351
|
+
|
352
|
+
self.assertEqual(
|
353
|
+
pydantic_model.model_json_schema()["properties"]["name"]["extra"][
|
354
|
+
"unique"
|
355
|
+
],
|
356
|
+
False,
|
357
|
+
)
|
358
|
+
|
359
|
+
|
332
360
|
class TestJSONColumn(TestCase):
|
333
361
|
def test_default(self):
|
334
362
|
class Movie(Table):
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|