TypeDAL 3.9.3__tar.gz → 3.9.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.

Potentially problematic release.


This version of TypeDAL might be problematic. Click here for more details.

Files changed (58) hide show
  1. {typedal-3.9.3 → typedal-3.9.4}/CHANGELOG.md +6 -0
  2. {typedal-3.9.3 → typedal-3.9.4}/PKG-INFO +1 -1
  3. {typedal-3.9.3 → typedal-3.9.4}/src/typedal/__about__.py +1 -1
  4. {typedal-3.9.3 → typedal-3.9.4}/src/typedal/for_py4web.py +2 -2
  5. {typedal-3.9.3 → typedal-3.9.4}/tests/test_py4web.py +20 -2
  6. {typedal-3.9.3 → typedal-3.9.4}/.github/workflows/su6.yml +0 -0
  7. {typedal-3.9.3 → typedal-3.9.4}/.gitignore +0 -0
  8. {typedal-3.9.3 → typedal-3.9.4}/.readthedocs.yml +0 -0
  9. {typedal-3.9.3 → typedal-3.9.4}/README.md +0 -0
  10. {typedal-3.9.3 → typedal-3.9.4}/coverage.svg +0 -0
  11. {typedal-3.9.3 → typedal-3.9.4}/docs/1_getting_started.md +0 -0
  12. {typedal-3.9.3 → typedal-3.9.4}/docs/2_defining_tables.md +0 -0
  13. {typedal-3.9.3 → typedal-3.9.4}/docs/3_building_queries.md +0 -0
  14. {typedal-3.9.3 → typedal-3.9.4}/docs/4_relationships.md +0 -0
  15. {typedal-3.9.3 → typedal-3.9.4}/docs/5_py4web.md +0 -0
  16. {typedal-3.9.3 → typedal-3.9.4}/docs/6_migrations.md +0 -0
  17. {typedal-3.9.3 → typedal-3.9.4}/docs/7_mixins.md +0 -0
  18. {typedal-3.9.3 → typedal-3.9.4}/docs/css/code_blocks.css +0 -0
  19. {typedal-3.9.3 → typedal-3.9.4}/docs/index.md +0 -0
  20. {typedal-3.9.3 → typedal-3.9.4}/docs/requirements.txt +0 -0
  21. {typedal-3.9.3 → typedal-3.9.4}/example_new.py +0 -0
  22. {typedal-3.9.3 → typedal-3.9.4}/example_old.py +0 -0
  23. {typedal-3.9.3 → typedal-3.9.4}/mkdocs.yml +0 -0
  24. {typedal-3.9.3 → typedal-3.9.4}/pyproject.toml +0 -0
  25. {typedal-3.9.3 → typedal-3.9.4}/src/typedal/__init__.py +0 -0
  26. {typedal-3.9.3 → typedal-3.9.4}/src/typedal/caching.py +0 -0
  27. {typedal-3.9.3 → typedal-3.9.4}/src/typedal/cli.py +0 -0
  28. {typedal-3.9.3 → typedal-3.9.4}/src/typedal/config.py +0 -0
  29. {typedal-3.9.3 → typedal-3.9.4}/src/typedal/core.py +0 -0
  30. {typedal-3.9.3 → typedal-3.9.4}/src/typedal/fields.py +0 -0
  31. {typedal-3.9.3 → typedal-3.9.4}/src/typedal/for_web2py.py +0 -0
  32. {typedal-3.9.3 → typedal-3.9.4}/src/typedal/helpers.py +0 -0
  33. {typedal-3.9.3 → typedal-3.9.4}/src/typedal/mixins.py +0 -0
  34. {typedal-3.9.3 → typedal-3.9.4}/src/typedal/py.typed +0 -0
  35. {typedal-3.9.3 → typedal-3.9.4}/src/typedal/serializers/as_json.py +0 -0
  36. {typedal-3.9.3 → typedal-3.9.4}/src/typedal/types.py +0 -0
  37. {typedal-3.9.3 → typedal-3.9.4}/src/typedal/web2py_py4web_shared.py +0 -0
  38. {typedal-3.9.3 → typedal-3.9.4}/tests/__init__.py +0 -0
  39. {typedal-3.9.3 → typedal-3.9.4}/tests/configs/simple.toml +0 -0
  40. {typedal-3.9.3 → typedal-3.9.4}/tests/configs/valid.env +0 -0
  41. {typedal-3.9.3 → typedal-3.9.4}/tests/configs/valid.toml +0 -0
  42. {typedal-3.9.3 → typedal-3.9.4}/tests/test_cli.py +0 -0
  43. {typedal-3.9.3 → typedal-3.9.4}/tests/test_config.py +0 -0
  44. {typedal-3.9.3 → typedal-3.9.4}/tests/test_docs_examples.py +0 -0
  45. {typedal-3.9.3 → typedal-3.9.4}/tests/test_helpers.py +0 -0
  46. {typedal-3.9.3 → typedal-3.9.4}/tests/test_json.py +0 -0
  47. {typedal-3.9.3 → typedal-3.9.4}/tests/test_main.py +0 -0
  48. {typedal-3.9.3 → typedal-3.9.4}/tests/test_mixins.py +0 -0
  49. {typedal-3.9.3 → typedal-3.9.4}/tests/test_mypy.py +0 -0
  50. {typedal-3.9.3 → typedal-3.9.4}/tests/test_orm.py +0 -0
  51. {typedal-3.9.3 → typedal-3.9.4}/tests/test_query_builder.py +0 -0
  52. {typedal-3.9.3 → typedal-3.9.4}/tests/test_relationships.py +0 -0
  53. {typedal-3.9.3 → typedal-3.9.4}/tests/test_row.py +0 -0
  54. {typedal-3.9.3 → typedal-3.9.4}/tests/test_stats.py +0 -0
  55. {typedal-3.9.3 → typedal-3.9.4}/tests/test_table.py +0 -0
  56. {typedal-3.9.3 → typedal-3.9.4}/tests/test_web2py.py +0 -0
  57. {typedal-3.9.3 → typedal-3.9.4}/tests/test_xx_others.py +0 -0
  58. {typedal-3.9.3 → typedal-3.9.4}/tests/timings.py +0 -0
@@ -2,6 +2,12 @@
2
2
 
3
3
  <!--next-version-placeholder-->
4
4
 
5
+ ## v3.9.4 (2024-11-10)
6
+
7
+ ### Fix
8
+
9
+ * **p4w:** Calling `for_py4web.DAL()` without any arguments (to load from config) should work even with singleton ([`16f9e68`](https://github.com/trialandsuccess/TypeDAL/commit/16f9e681eaac2fccd06a110031c0d55261a0a7e9))
10
+
5
11
  ## v3.9.3 (2024-11-08)
6
12
 
7
13
  ### Fix
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: TypeDAL
3
- Version: 3.9.3
3
+ Version: 3.9.4
4
4
  Summary: Typing support for PyDAL
5
5
  Project-URL: Documentation, https://typedal.readthedocs.io/
6
6
  Project-URL: Issues, https://github.com/trialandsuccess/TypeDAL/issues
@@ -5,4 +5,4 @@ This file contains the Version info for this package.
5
5
  # SPDX-FileCopyrightText: 2023-present Robin van der Noord <robinvandernoord@gmail.com>
6
6
  #
7
7
  # SPDX-License-Identifier: MIT
8
- __version__ = "3.9.3"
8
+ __version__ = "3.9.4"
@@ -24,8 +24,8 @@ class Fixture(_Fixture): # type: ignore
24
24
  class PY4WEB_DAL_SINGLETON(MetaDAL):
25
25
  _instances: typing.ClassVar[typing.MutableMapping[str, AnyType]] = {}
26
26
 
27
- def __call__(cls, uri: str, *args: typing.Any, **kwargs: typing.Any) -> AnyType:
28
- db_uid = kwargs.get("db_uid", hashlib_md5(repr(uri)).hexdigest())
27
+ def __call__(cls, uri: typing.Optional[str] = None, *args: typing.Any, **kwargs: typing.Any) -> AnyType:
28
+ db_uid = kwargs.get("db_uid", hashlib_md5(repr(uri or (args, kwargs))).hexdigest())
29
29
  if db_uid not in cls._instances:
30
30
  cls._instances[db_uid] = super().__call__(uri, *args, **kwargs)
31
31
 
@@ -1,12 +1,13 @@
1
1
  import json
2
2
  import tempfile
3
- from contextlib import chdir
3
+ from contextlib_chdir import chdir
4
4
 
5
5
  from pydal.validators import IS_EMAIL, IS_NOT_IN_DB
6
6
 
7
7
  from src.typedal import TypedTable
8
8
  from src.typedal.for_py4web import DAL, AuthUser, setup_py4web_tables
9
9
  from src.typedal.serializers import as_json
10
+ from typedal.config import TypeDALConfig
10
11
 
11
12
  db = DAL("sqlite:memory")
12
13
 
@@ -59,6 +60,15 @@ def test_py4web_dal_singleton():
59
60
  db_2a = DAL("sqlite://test_py4web_dal_singleton", folder=d, enable_typedal_caching=False)
60
61
  db_2b = DAL("sqlite://test_py4web_dal_singleton", folder=d, enable_typedal_caching=False)
61
62
 
63
+ conf = {
64
+ "database": "sqlite:memory",
65
+ "dialect": "sqlite",
66
+ "pyproject": "",
67
+ "flag_location": f"{d}/flags"
68
+ }
69
+ db_3a = DAL(config=TypeDALConfig.load(conf))
70
+ db_3b = DAL(config=TypeDALConfig.load(conf))
71
+
62
72
  assert db_1a is db_1b
63
73
  assert db_1a._uri == db_1b._uri
64
74
  assert db_1a._db_uid == db_1b._db_uid
@@ -74,6 +84,14 @@ def test_py4web_dal_singleton():
74
84
  assert db_1b is not db_2b
75
85
  assert db_1b._uri != db_2b._uri
76
86
  assert db_1b._db_uid != db_2b._db_uid
77
-
87
+
88
+ assert db_3a is db_3b
89
+ assert db_3a is not db_1a
90
+ assert db_3a is not db_2a
91
+
92
+ assert db_1a._uri == db_1b._uri
93
+ assert db_3a._uri == db_1a._uri
94
+ assert db_3a._uri != db_2a._uri
95
+
78
96
  # reset singletons for later use:
79
97
  DAL._clear()
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes