python-corekit 0.1.0__tar.gz → 0.1.1__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.
Files changed (152) hide show
  1. {python_corekit-0.1.0/python_corekit.egg-info → python_corekit-0.1.1}/PKG-INFO +8 -9
  2. {python_corekit-0.1.0 → python_corekit-0.1.1}/README.md +7 -8
  3. {python_corekit-0.1.0 → python_corekit-0.1.1}/corekit/config/settings.py +3 -3
  4. python_corekit-0.1.1/corekit/crypto/constants.py +7 -0
  5. {python_corekit-0.1.0 → python_corekit-0.1.1}/pyproject.toml +1 -1
  6. {python_corekit-0.1.0 → python_corekit-0.1.1/python_corekit.egg-info}/PKG-INFO +8 -9
  7. python_corekit-0.1.0/corekit/crypto/constants.py +0 -7
  8. {python_corekit-0.1.0 → python_corekit-0.1.1}/LICENSE +0 -0
  9. {python_corekit-0.1.0 → python_corekit-0.1.1}/corekit/__init__.py +0 -0
  10. {python_corekit-0.1.0 → python_corekit-0.1.1}/corekit/api/__init__.py +0 -0
  11. {python_corekit-0.1.0 → python_corekit-0.1.1}/corekit/api/handler.py +0 -0
  12. {python_corekit-0.1.0 → python_corekit-0.1.1}/corekit/api/responses.py +0 -0
  13. {python_corekit-0.1.0 → python_corekit-0.1.1}/corekit/api/routers.py +0 -0
  14. {python_corekit-0.1.0 → python_corekit-0.1.1}/corekit/concurrency/__init__.py +0 -0
  15. {python_corekit-0.1.0 → python_corekit-0.1.1}/corekit/concurrency/decorators.py +0 -0
  16. {python_corekit-0.1.0 → python_corekit-0.1.1}/corekit/concurrency/thread_local.py +0 -0
  17. {python_corekit-0.1.0 → python_corekit-0.1.1}/corekit/concurrency/worker.py +0 -0
  18. {python_corekit-0.1.0 → python_corekit-0.1.1}/corekit/config/__init__.py +0 -0
  19. {python_corekit-0.1.0 → python_corekit-0.1.1}/corekit/config/loader.py +0 -0
  20. {python_corekit-0.1.0 → python_corekit-0.1.1}/corekit/config/sources.py +0 -0
  21. {python_corekit-0.1.0 → python_corekit-0.1.1}/corekit/connections/__init__.py +0 -0
  22. {python_corekit-0.1.0 → python_corekit-0.1.1}/corekit/connections/connectable.py +0 -0
  23. {python_corekit-0.1.0 → python_corekit-0.1.1}/corekit/connections/decorators.py +0 -0
  24. {python_corekit-0.1.0 → python_corekit-0.1.1}/corekit/connections/redis/__init__.py +0 -0
  25. {python_corekit-0.1.0 → python_corekit-0.1.1}/corekit/connections/redis/connection.py +0 -0
  26. {python_corekit-0.1.0 → python_corekit-0.1.1}/corekit/connections/registry.py +0 -0
  27. {python_corekit-0.1.0 → python_corekit-0.1.1}/corekit/connections/sql/__init__.py +0 -0
  28. {python_corekit-0.1.0 → python_corekit-0.1.1}/corekit/connections/sql/connection.py +0 -0
  29. {python_corekit-0.1.0 → python_corekit-0.1.1}/corekit/connections/sql/fields/__init__.py +0 -0
  30. {python_corekit-0.1.0 → python_corekit-0.1.1}/corekit/connections/sql/fields/jsonb.py +0 -0
  31. {python_corekit-0.1.0 → python_corekit-0.1.1}/corekit/connections/sql/migration/__init__.py +0 -0
  32. {python_corekit-0.1.0 → python_corekit-0.1.1}/corekit/connections/sql/migration/base.py +0 -0
  33. {python_corekit-0.1.0 → python_corekit-0.1.1}/corekit/connections/sql/migration/operations.py +0 -0
  34. {python_corekit-0.1.0 → python_corekit-0.1.1}/corekit/connections/sql/migration/registry.py +0 -0
  35. {python_corekit-0.1.0 → python_corekit-0.1.1}/corekit/connections/sql/migration/table.py +0 -0
  36. {python_corekit-0.1.0 → python_corekit-0.1.1}/corekit/connections/sql/query.py +0 -0
  37. {python_corekit-0.1.0 → python_corekit-0.1.1}/corekit/connections/sql/table.py +0 -0
  38. {python_corekit-0.1.0 → python_corekit-0.1.1}/corekit/constants.py +0 -0
  39. {python_corekit-0.1.0 → python_corekit-0.1.1}/corekit/crypto/__init__.py +0 -0
  40. {python_corekit-0.1.0 → python_corekit-0.1.1}/corekit/crypto/enum.py +0 -0
  41. {python_corekit-0.1.0 → python_corekit-0.1.1}/corekit/crypto/hasher.py +0 -0
  42. {python_corekit-0.1.0 → python_corekit-0.1.1}/corekit/data/__init__.py +0 -0
  43. {python_corekit-0.1.0 → python_corekit-0.1.1}/corekit/data/dataset.py +0 -0
  44. {python_corekit-0.1.0 → python_corekit-0.1.1}/corekit/data/expressions/__init__.py +0 -0
  45. {python_corekit-0.1.0 → python_corekit-0.1.1}/corekit/data/expressions/comparison.py +0 -0
  46. {python_corekit-0.1.0 → python_corekit-0.1.1}/corekit/data/expressions/expression.py +0 -0
  47. {python_corekit-0.1.0 → python_corekit-0.1.1}/corekit/data/record.py +0 -0
  48. {python_corekit-0.1.0 → python_corekit-0.1.1}/corekit/data/stats.py +0 -0
  49. {python_corekit-0.1.0 → python_corekit-0.1.1}/corekit/decorators/__init__.py +0 -0
  50. {python_corekit-0.1.0 → python_corekit-0.1.1}/corekit/decorators/exception_handling.py +0 -0
  51. {python_corekit-0.1.0 → python_corekit-0.1.1}/corekit/decorators/warnings.py +0 -0
  52. {python_corekit-0.1.0 → python_corekit-0.1.1}/corekit/docker/__init__.py +0 -0
  53. {python_corekit-0.1.0 → python_corekit-0.1.1}/corekit/docker/watchdog.py +0 -0
  54. {python_corekit-0.1.0 → python_corekit-0.1.1}/corekit/etl/__init__.py +0 -0
  55. {python_corekit-0.1.0 → python_corekit-0.1.1}/corekit/etl/connection.py +0 -0
  56. {python_corekit-0.1.0 → python_corekit-0.1.1}/corekit/etl/extract/__init__.py +0 -0
  57. {python_corekit-0.1.0 → python_corekit-0.1.1}/corekit/etl/extract/extractor.py +0 -0
  58. {python_corekit-0.1.0 → python_corekit-0.1.1}/corekit/etl/extract/schemas.py +0 -0
  59. {python_corekit-0.1.0 → python_corekit-0.1.1}/corekit/etl/load/__init__.py +0 -0
  60. {python_corekit-0.1.0 → python_corekit-0.1.1}/corekit/etl/load/loader.py +0 -0
  61. {python_corekit-0.1.0 → python_corekit-0.1.1}/corekit/etl/load/schemas.py +0 -0
  62. {python_corekit-0.1.0 → python_corekit-0.1.1}/corekit/etl/orchestrator.py +0 -0
  63. {python_corekit-0.1.0 → python_corekit-0.1.1}/corekit/etl/schemas.py +0 -0
  64. {python_corekit-0.1.0 → python_corekit-0.1.1}/corekit/etl/transform/__init__.py +0 -0
  65. {python_corekit-0.1.0 → python_corekit-0.1.1}/corekit/etl/transform/schemas.py +0 -0
  66. {python_corekit-0.1.0 → python_corekit-0.1.1}/corekit/etl/transform/transformer.py +0 -0
  67. {python_corekit-0.1.0 → python_corekit-0.1.1}/corekit/events/__init__.py +0 -0
  68. {python_corekit-0.1.0 → python_corekit-0.1.1}/corekit/events/enum.py +0 -0
  69. {python_corekit-0.1.0 → python_corekit-0.1.1}/corekit/events/frames.py +0 -0
  70. {python_corekit-0.1.0 → python_corekit-0.1.1}/corekit/events/models.py +0 -0
  71. {python_corekit-0.1.0 → python_corekit-0.1.1}/corekit/events/publisher.py +0 -0
  72. {python_corekit-0.1.0 → python_corekit-0.1.1}/corekit/events/reader.py +0 -0
  73. {python_corekit-0.1.0 → python_corekit-0.1.1}/corekit/events/sse.py +0 -0
  74. {python_corekit-0.1.0 → python_corekit-0.1.1}/corekit/events/websocket.py +0 -0
  75. {python_corekit-0.1.0 → python_corekit-0.1.1}/corekit/exceptions/__init__.py +0 -0
  76. {python_corekit-0.1.0 → python_corekit-0.1.1}/corekit/exceptions/base.py +0 -0
  77. {python_corekit-0.1.0 → python_corekit-0.1.1}/corekit/exceptions/custom/__init__.py +0 -0
  78. {python_corekit-0.1.0 → python_corekit-0.1.1}/corekit/exceptions/http/__init__.py +0 -0
  79. {python_corekit-0.1.0 → python_corekit-0.1.1}/corekit/exceptions/http/exceptions.py +0 -0
  80. {python_corekit-0.1.0 → python_corekit-0.1.1}/corekit/exceptions/types.py +0 -0
  81. {python_corekit-0.1.0 → python_corekit-0.1.1}/corekit/files/__init__.py +0 -0
  82. {python_corekit-0.1.0 → python_corekit-0.1.1}/corekit/files/base.py +0 -0
  83. {python_corekit-0.1.0 → python_corekit-0.1.1}/corekit/files/enum.py +0 -0
  84. {python_corekit-0.1.0 → python_corekit-0.1.1}/corekit/files/json.py +0 -0
  85. {python_corekit-0.1.0 → python_corekit-0.1.1}/corekit/files/pickle.py +0 -0
  86. {python_corekit-0.1.0 → python_corekit-0.1.1}/corekit/files/toml.py +0 -0
  87. {python_corekit-0.1.0 → python_corekit-0.1.1}/corekit/http/__init__.py +0 -0
  88. {python_corekit-0.1.0 → python_corekit-0.1.1}/corekit/http/client.py +0 -0
  89. {python_corekit-0.1.0 → python_corekit-0.1.1}/corekit/http/exponential_backoff.py +0 -0
  90. {python_corekit-0.1.0 → python_corekit-0.1.1}/corekit/http/response.py +0 -0
  91. {python_corekit-0.1.0 → python_corekit-0.1.1}/corekit/log_monitor/__init__.py +0 -0
  92. {python_corekit-0.1.0 → python_corekit-0.1.1}/corekit/log_monitor/constants.py +0 -0
  93. {python_corekit-0.1.0 → python_corekit-0.1.1}/corekit/log_monitor/models.py +0 -0
  94. {python_corekit-0.1.0 → python_corekit-0.1.1}/corekit/log_monitor/service.py +0 -0
  95. {python_corekit-0.1.0 → python_corekit-0.1.1}/corekit/notifications/__init__.py +0 -0
  96. {python_corekit-0.1.0 → python_corekit-0.1.1}/corekit/notifications/base.py +0 -0
  97. {python_corekit-0.1.0 → python_corekit-0.1.1}/corekit/notifications/models.py +0 -0
  98. {python_corekit-0.1.0 → python_corekit-0.1.1}/corekit/observability/__init__.py +0 -0
  99. {python_corekit-0.1.0 → python_corekit-0.1.1}/corekit/observability/benchmarkable.py +0 -0
  100. {python_corekit-0.1.0 → python_corekit-0.1.1}/corekit/observability/loggable.py +0 -0
  101. {python_corekit-0.1.0 → python_corekit-0.1.1}/corekit/observability/timing/__init__.py +0 -0
  102. {python_corekit-0.1.0 → python_corekit-0.1.1}/corekit/observability/timing/constants.py +0 -0
  103. {python_corekit-0.1.0 → python_corekit-0.1.1}/corekit/observability/timing/split.py +0 -0
  104. {python_corekit-0.1.0 → python_corekit-0.1.1}/corekit/observability/timing/timer.py +0 -0
  105. {python_corekit-0.1.0 → python_corekit-0.1.1}/corekit/py.typed +0 -0
  106. {python_corekit-0.1.0 → python_corekit-0.1.1}/corekit/registry/__init__.py +0 -0
  107. {python_corekit-0.1.0 → python_corekit-0.1.1}/corekit/registry/registry.py +0 -0
  108. {python_corekit-0.1.0 → python_corekit-0.1.1}/corekit/schemas/__init__.py +0 -0
  109. {python_corekit-0.1.0 → python_corekit-0.1.1}/corekit/schemas/dataclasses/__init__.py +0 -0
  110. {python_corekit-0.1.0 → python_corekit-0.1.1}/corekit/schemas/enum.py +0 -0
  111. {python_corekit-0.1.0 → python_corekit-0.1.1}/corekit/schemas/models/__init__.py +0 -0
  112. {python_corekit-0.1.0 → python_corekit-0.1.1}/corekit/schemas/models/arbitrary.py +0 -0
  113. {python_corekit-0.1.0 → python_corekit-0.1.1}/corekit/schemas/models/date_models.py +0 -0
  114. {python_corekit-0.1.0 → python_corekit-0.1.1}/corekit/schemas/pydantic/__init__.py +0 -0
  115. {python_corekit-0.1.0 → python_corekit-0.1.1}/corekit/schemas/pydantic/fields.py +0 -0
  116. {python_corekit-0.1.0 → python_corekit-0.1.1}/corekit/schemas/types.py +0 -0
  117. {python_corekit-0.1.0 → python_corekit-0.1.1}/corekit/serialization/__init__.py +0 -0
  118. {python_corekit-0.1.0 → python_corekit-0.1.1}/corekit/serialization/enum.py +0 -0
  119. {python_corekit-0.1.0 → python_corekit-0.1.1}/corekit/serialization/serializable.py +0 -0
  120. {python_corekit-0.1.0 → python_corekit-0.1.1}/corekit/serialization/serializer.py +0 -0
  121. {python_corekit-0.1.0 → python_corekit-0.1.1}/corekit/utils/__init__.py +0 -0
  122. {python_corekit-0.1.0 → python_corekit-0.1.1}/corekit/utils/ids.py +0 -0
  123. {python_corekit-0.1.0 → python_corekit-0.1.1}/corekit/utils/raise_exc.py +0 -0
  124. {python_corekit-0.1.0 → python_corekit-0.1.1}/corekit/utils/time.py +0 -0
  125. {python_corekit-0.1.0 → python_corekit-0.1.1}/corekit/utils/validators.py +0 -0
  126. {python_corekit-0.1.0 → python_corekit-0.1.1}/corekit/utils/void.py +0 -0
  127. {python_corekit-0.1.0 → python_corekit-0.1.1}/python_corekit.egg-info/SOURCES.txt +0 -0
  128. {python_corekit-0.1.0 → python_corekit-0.1.1}/python_corekit.egg-info/dependency_links.txt +0 -0
  129. {python_corekit-0.1.0 → python_corekit-0.1.1}/python_corekit.egg-info/requires.txt +0 -0
  130. {python_corekit-0.1.0 → python_corekit-0.1.1}/python_corekit.egg-info/top_level.txt +0 -0
  131. {python_corekit-0.1.0 → python_corekit-0.1.1}/setup.cfg +0 -0
  132. {python_corekit-0.1.0 → python_corekit-0.1.1}/setup.py +0 -0
  133. {python_corekit-0.1.0 → python_corekit-0.1.1}/tests/test_api.py +0 -0
  134. {python_corekit-0.1.0 → python_corekit-0.1.1}/tests/test_architecture.py +0 -0
  135. {python_corekit-0.1.0 → python_corekit-0.1.1}/tests/test_concurrency.py +0 -0
  136. {python_corekit-0.1.0 → python_corekit-0.1.1}/tests/test_config.py +0 -0
  137. {python_corekit-0.1.0 → python_corekit-0.1.1}/tests/test_connections.py +0 -0
  138. {python_corekit-0.1.0 → python_corekit-0.1.1}/tests/test_data.py +0 -0
  139. {python_corekit-0.1.0 → python_corekit-0.1.1}/tests/test_docker.py +0 -0
  140. {python_corekit-0.1.0 → python_corekit-0.1.1}/tests/test_etl.py +0 -0
  141. {python_corekit-0.1.0 → python_corekit-0.1.1}/tests/test_events.py +0 -0
  142. {python_corekit-0.1.0 → python_corekit-0.1.1}/tests/test_files.py +0 -0
  143. {python_corekit-0.1.0 → python_corekit-0.1.1}/tests/test_imports.py +0 -0
  144. {python_corekit-0.1.0 → python_corekit-0.1.1}/tests/test_imports_are_top_level.py +0 -0
  145. {python_corekit-0.1.0 → python_corekit-0.1.1}/tests/test_log_monitor.py +0 -0
  146. {python_corekit-0.1.0 → python_corekit-0.1.1}/tests/test_migration.py +0 -0
  147. {python_corekit-0.1.0 → python_corekit-0.1.1}/tests/test_redis.py +0 -0
  148. {python_corekit-0.1.0 → python_corekit-0.1.1}/tests/test_registry.py +0 -0
  149. {python_corekit-0.1.0 → python_corekit-0.1.1}/tests/test_requests.py +0 -0
  150. {python_corekit-0.1.0 → python_corekit-0.1.1}/tests/test_serialization.py +0 -0
  151. {python_corekit-0.1.0 → python_corekit-0.1.1}/tests/test_sql.py +0 -0
  152. {python_corekit-0.1.0 → python_corekit-0.1.1}/tests/test_utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: python-corekit
3
- Version: 0.1.0
3
+ Version: 0.1.1
4
4
  Summary: Shared foundations for Python projects: logging, benchmarking, registries, FastAPI routers/handlers, data stores, and ETL
5
5
  Author: Steven Jacobsen
6
6
  License-Expression: MIT
@@ -47,14 +47,12 @@ Requires Python 3.11+.
47
47
  pip install python-corekit
48
48
  ```
49
49
 
50
- No credentials, no SSH key, no token — which means a project that depends on
51
- corekit can be cloned and built by anyone, including inside a Docker build.
50
+ The distribution is `python-corekit`; the import is `corekit`.
52
51
 
53
52
  Every dependency corekit needs is installed with it. There are no optional
54
53
  extras to remember, and no import that fails because something was left out.
55
54
 
56
- The distribution is `python-corekit`; the import is `corekit`. Pin a compatible
57
- release rather than tracking whatever is newest:
55
+ Pin a compatible release rather than tracking whatever is newest:
58
56
 
59
57
  ```
60
58
  python-corekit~=0.1.0
@@ -371,7 +369,8 @@ Imports go downward only.
371
369
 
372
370
  ```
373
371
  corekit/
374
- config.py constants.py
372
+ config/ settings, sources, loader
373
+ constants.py
375
374
 
376
375
  exceptions/ error types
377
376
 
@@ -404,13 +403,13 @@ layering deliberately.
404
403
  ## Development
405
404
 
406
405
  ```bash
407
- pip install -e ".[dev,all]"
406
+ pip install -e ".[dev]"
408
407
  pytest
409
408
  ruff format . && ruff check --fix .
410
409
  ```
411
410
 
412
- `tests/test_imports.py` imports every module in the package. Keep it passing:
413
- several modules were broken for months because nothing ever imported them.
411
+ `tests/test_imports.py` imports every module in the package, so a module that
412
+ nothing else happens to import still has to be importable.
414
413
 
415
414
  ## Licence
416
415
 
@@ -12,14 +12,12 @@ Requires Python 3.11+.
12
12
  pip install python-corekit
13
13
  ```
14
14
 
15
- No credentials, no SSH key, no token — which means a project that depends on
16
- corekit can be cloned and built by anyone, including inside a Docker build.
15
+ The distribution is `python-corekit`; the import is `corekit`.
17
16
 
18
17
  Every dependency corekit needs is installed with it. There are no optional
19
18
  extras to remember, and no import that fails because something was left out.
20
19
 
21
- The distribution is `python-corekit`; the import is `corekit`. Pin a compatible
22
- release rather than tracking whatever is newest:
20
+ Pin a compatible release rather than tracking whatever is newest:
23
21
 
24
22
  ```
25
23
  python-corekit~=0.1.0
@@ -336,7 +334,8 @@ Imports go downward only.
336
334
 
337
335
  ```
338
336
  corekit/
339
- config.py constants.py
337
+ config/ settings, sources, loader
338
+ constants.py
340
339
 
341
340
  exceptions/ error types
342
341
 
@@ -369,13 +368,13 @@ layering deliberately.
369
368
  ## Development
370
369
 
371
370
  ```bash
372
- pip install -e ".[dev,all]"
371
+ pip install -e ".[dev]"
373
372
  pytest
374
373
  ruff format . && ruff check --fix .
375
374
  ```
376
375
 
377
- `tests/test_imports.py` imports every module in the package. Keep it passing:
378
- several modules were broken for months because nothing ever imported them.
376
+ `tests/test_imports.py` imports every module in the package, so a module that
377
+ nothing else happens to import still has to be importable.
379
378
 
380
379
  ## Licence
381
380
 
@@ -89,9 +89,9 @@ class CryptoSettings(BaseModel):
89
89
  """
90
90
  Hashing configuration.
91
91
 
92
- ``salt`` has no default on purpose: the value that used to be hardcoded is
93
- in git history and must be treated as compromised, so hashing raises until
94
- one is supplied.
92
+ ``salt`` has no default on purpose. A salt shipped with a library is shared
93
+ by every install, which defeats the point of salting, so hashing raises
94
+ until one is supplied.
95
95
  """
96
96
 
97
97
  salt: str | None = None
@@ -0,0 +1,7 @@
1
+ HASH_JOINER = ":"
2
+ EMPTY_HASH = ""
3
+
4
+ # There is deliberately no default salt. A salt shipped with a library is shared
5
+ # by every install, which defeats the purpose of salting. Supply one through
6
+ # configuration -- see `corekit.config.CorekitSettings.crypto_salt` and
7
+ # `corekit.crypto.hasher.Hasher`.
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "python-corekit"
7
- version = "0.1.0"
7
+ version = "0.1.1"
8
8
  description = "Shared foundations for Python projects: logging, benchmarking, registries, FastAPI routers/handlers, data stores, and ETL"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.11"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: python-corekit
3
- Version: 0.1.0
3
+ Version: 0.1.1
4
4
  Summary: Shared foundations for Python projects: logging, benchmarking, registries, FastAPI routers/handlers, data stores, and ETL
5
5
  Author: Steven Jacobsen
6
6
  License-Expression: MIT
@@ -47,14 +47,12 @@ Requires Python 3.11+.
47
47
  pip install python-corekit
48
48
  ```
49
49
 
50
- No credentials, no SSH key, no token — which means a project that depends on
51
- corekit can be cloned and built by anyone, including inside a Docker build.
50
+ The distribution is `python-corekit`; the import is `corekit`.
52
51
 
53
52
  Every dependency corekit needs is installed with it. There are no optional
54
53
  extras to remember, and no import that fails because something was left out.
55
54
 
56
- The distribution is `python-corekit`; the import is `corekit`. Pin a compatible
57
- release rather than tracking whatever is newest:
55
+ Pin a compatible release rather than tracking whatever is newest:
58
56
 
59
57
  ```
60
58
  python-corekit~=0.1.0
@@ -371,7 +369,8 @@ Imports go downward only.
371
369
 
372
370
  ```
373
371
  corekit/
374
- config.py constants.py
372
+ config/ settings, sources, loader
373
+ constants.py
375
374
 
376
375
  exceptions/ error types
377
376
 
@@ -404,13 +403,13 @@ layering deliberately.
404
403
  ## Development
405
404
 
406
405
  ```bash
407
- pip install -e ".[dev,all]"
406
+ pip install -e ".[dev]"
408
407
  pytest
409
408
  ruff format . && ruff check --fix .
410
409
  ```
411
410
 
412
- `tests/test_imports.py` imports every module in the package. Keep it passing:
413
- several modules were broken for months because nothing ever imported them.
411
+ `tests/test_imports.py` imports every module in the package, so a module that
412
+ nothing else happens to import still has to be importable.
414
413
 
415
414
  ## Licence
416
415
 
@@ -1,7 +0,0 @@
1
- HASH_JOINER = ":"
2
- EMPTY_HASH = ""
3
-
4
- # NOTE: a hardcoded CRYPTO_SALT previously lived here and is still present in this
5
- # repository's git history. It must be considered compromised and must never be
6
- # reintroduced. The salt is now supplied through configuration -- see
7
- # `corekit.config.CorekitSettings.crypto_salt` and `corekit.crypto.hasher.Hasher`.
File without changes
File without changes
File without changes