SQLAlchemy-Continuum 1.4.0__py3-none-any.whl → 1.4.2__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.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: SQLAlchemy-Continuum
3
- Version: 1.4.0
3
+ Version: 1.4.2
4
4
  Summary: Versioning and auditing extension for SQLAlchemy.
5
5
  Home-page: https://github.com/kvesteri/sqlalchemy-continuum
6
6
  Author: Konsta Vesterinen
@@ -21,24 +21,24 @@ Classifier: Programming Language :: Python :: 3.11
21
21
  Classifier: Topic :: Internet :: WWW/HTTP :: Dynamic Content
22
22
  Classifier: Topic :: Software Development :: Libraries :: Python Modules
23
23
  License-File: LICENSE
24
- Requires-Dist: SQLAlchemy (>=1.4.0)
25
- Requires-Dist: SQLAlchemy-Utils (>=0.30.12)
24
+ Requires-Dist: SQLAlchemy >=1.4.0
25
+ Requires-Dist: SQLAlchemy-Utils >=0.41.2
26
26
  Provides-Extra: flask
27
- Requires-Dist: Flask (>=0.9) ; extra == 'flask'
27
+ Requires-Dist: Flask >=0.9 ; extra == 'flask'
28
28
  Provides-Extra: flask-login
29
- Requires-Dist: Flask-Login (>=0.2.9) ; extra == 'flask-login'
29
+ Requires-Dist: Flask-Login >=0.2.9 ; extra == 'flask-login'
30
30
  Provides-Extra: flask-sqlalchemy
31
- Requires-Dist: Flask-SQLAlchemy (>=1.0) ; extra == 'flask-sqlalchemy'
31
+ Requires-Dist: Flask-SQLAlchemy >=1.0 ; extra == 'flask-sqlalchemy'
32
32
  Provides-Extra: i18n
33
- Requires-Dist: SQLAlchemy-i18n (!=1.1.0,>=0.8.4) ; extra == 'i18n'
33
+ Requires-Dist: SQLAlchemy-i18n !=1.1.0,>=0.8.4 ; extra == 'i18n'
34
34
  Provides-Extra: test
35
- Requires-Dist: pytest (>=2.3.5) ; extra == 'test'
36
- Requires-Dist: psycopg2 (>=2.4.6) ; extra == 'test'
37
- Requires-Dist: PyMySQL (>=0.8.0) ; extra == 'test'
38
- Requires-Dist: Flask (>=0.9) ; extra == 'test'
39
- Requires-Dist: Flask-Login (>=0.2.9) ; extra == 'test'
40
- Requires-Dist: Flask-SQLAlchemy (>=1.0) ; extra == 'test'
41
- Requires-Dist: SQLAlchemy-i18n (!=1.1.0,>=0.8.4) ; extra == 'test'
35
+ Requires-Dist: pytest >=2.3.5 ; extra == 'test'
36
+ Requires-Dist: psycopg2 >=2.4.6 ; extra == 'test'
37
+ Requires-Dist: PyMySQL >=0.8.0 ; extra == 'test'
38
+ Requires-Dist: Flask >=0.9 ; extra == 'test'
39
+ Requires-Dist: Flask-Login >=0.2.9 ; extra == 'test'
40
+ Requires-Dist: Flask-SQLAlchemy >=1.0 ; extra == 'test'
41
+ Requires-Dist: SQLAlchemy-i18n !=1.1.0,>=0.8.4 ; extra == 'test'
42
42
 
43
43
 
44
44
  SQLAlchemy-Continuum
@@ -1,10 +1,10 @@
1
- sqlalchemy_continuum/__init__.py,sha256=f6xr5dj9OuvYlQp1Yo1Wg53QjEK8s2oM7TDp_29Naxo,3244
1
+ sqlalchemy_continuum/__init__.py,sha256=5d4jTpzH0M7-vG6C3P7wgHJW9FXCSYhAfu8uAyvqiyw,3244
2
2
  sqlalchemy_continuum/builder.py,sha256=aw6C4HNGTllkjKQkNFDtEd8QDKV7O9qbXDsnQij8PuI,8541
3
3
  sqlalchemy_continuum/exc.py,sha256=FBpkpmsT7PJ9IeOGJRKEQkpk4rF5IjvuW5eisRuResw,152
4
4
  sqlalchemy_continuum/expression_reflector.py,sha256=nC_7MfG4Mobxkfvih1CMjeH_LE5NHuL7c5Ll1EylLu0,975
5
5
  sqlalchemy_continuum/factory.py,sha256=sUrOwtqQT0vKeBHi5vmeXwY_gfbMdW-2BsFmqPpSPX0,431
6
6
  sqlalchemy_continuum/fetcher.py,sha256=UYszDBAPv3tU6mhJxOf8Id9gZ7wB5pL0L8p55I6cIE4,5839
7
- sqlalchemy_continuum/manager.py,sha256=s7WaOeepuigTSKF9OO8IxhSpzR34T9PbO2ZNglRiQSw,15939
7
+ sqlalchemy_continuum/manager.py,sha256=do3acpjPni-4ggXaFM9OKSy9ZrzF7YTIm_xBBtLwz3g,16006
8
8
  sqlalchemy_continuum/model_builder.py,sha256=vNYbJYsPbfysFyY7mMu9LHjNoYSaZsxMFBK6FOOyNKo,9815
9
9
  sqlalchemy_continuum/operation.py,sha256=-z0Q7KK9sP-p8-bdQsDK32BHmAIY4dkYE8iht280C8c,2680
10
10
  sqlalchemy_continuum/relationship_builder.py,sha256=lF_m8Gu1PmC85-b_bfYOJs8B4DipNIHw7gKGjEWyHYY,12703
@@ -20,13 +20,13 @@ sqlalchemy_continuum/dialects/postgresql.py,sha256=-uYelXWDd1VdfZqMs4ZJh2lIKzJqB
20
20
  sqlalchemy_continuum/plugins/__init__.py,sha256=rDjRGd3oPrBIjTRRrBa8B3XE4K_j_sk32FLjIlYKwqA,322
21
21
  sqlalchemy_continuum/plugins/activity.py,sha256=7bABLDIq3VKxjhzXPQkQT_d3-a6ay6Ytxy5JodUDQJM,10607
22
22
  sqlalchemy_continuum/plugins/base.py,sha256=6c8Gs5yKXO3mhF5nfvxCz7cEXxx3DPH5wv4yN788gzw,1866
23
- sqlalchemy_continuum/plugins/flask.py,sha256=fbgRs8KDY6LrFJsJzp1LZjfjn4CPJwinP3hAcfQ18EA,2188
23
+ sqlalchemy_continuum/plugins/flask.py,sha256=fFA2hjbBwrjnZWel5N_8AydOyp3aqzAaqxA0a0TrndI,2001
24
24
  sqlalchemy_continuum/plugins/null_delete.py,sha256=c08Xezl5Q5Gzo6G8fbcJkkKMcBuGinCfAD3fmV6p-R4,987
25
25
  sqlalchemy_continuum/plugins/property_mod_tracker.py,sha256=PI-U7OpxRje56bThyvIIsK9d-qgOPiP_A7pBsWa-JVQ,2487
26
26
  sqlalchemy_continuum/plugins/transaction_changes.py,sha256=NCiREo0CcXhaSi9o31BVGD0QdDcsQRT9C9xW3wttseM,3239
27
- sqlalchemy_continuum/plugins/transaction_meta.py,sha256=SBB6pgVe9ZXFhkPd3W7bupxnP0T-zAwxdZq2sVWoX5Q,3172
28
- SQLAlchemy_Continuum-1.4.0.dist-info/LICENSE,sha256=D85do8txXhU6O0KVZNa5xL88grRdu4sW2pXIJ9HNwn0,1480
29
- SQLAlchemy_Continuum-1.4.0.dist-info/METADATA,sha256=9zB4LtfTS4LYPeghRc2LtBANkCpkz6GOlUPRuJeBVlY,1884
30
- SQLAlchemy_Continuum-1.4.0.dist-info/WHEEL,sha256=pkctZYzUS4AYVn6dJ-7367OJZivF2e8RA9b_ZBjif18,92
31
- SQLAlchemy_Continuum-1.4.0.dist-info/top_level.txt,sha256=L033wn3n8mCFGMSFgjFOKKA_MnLFZ2YdocrQ75TPhT4,21
32
- SQLAlchemy_Continuum-1.4.0.dist-info/RECORD,,
27
+ sqlalchemy_continuum/plugins/transaction_meta.py,sha256=s4n-uSs78s76sjaeRad_x7YJcz5cQ6ZNU9WzGelzMAw,3175
28
+ SQLAlchemy_Continuum-1.4.2.dist-info/LICENSE,sha256=D85do8txXhU6O0KVZNa5xL88grRdu4sW2pXIJ9HNwn0,1480
29
+ SQLAlchemy_Continuum-1.4.2.dist-info/METADATA,sha256=SY9yYBBMvIc6lF8-Pn5P1Gh1l7Hgk3tCRNxmDn8gCTc,1857
30
+ SQLAlchemy_Continuum-1.4.2.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
31
+ SQLAlchemy_Continuum-1.4.2.dist-info/top_level.txt,sha256=L033wn3n8mCFGMSFgjFOKKA_MnLFZ2YdocrQ75TPhT4,21
32
+ SQLAlchemy_Continuum-1.4.2.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: bdist_wheel (0.40.0)
2
+ Generator: bdist_wheel (0.43.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5
 
@@ -18,7 +18,7 @@ from .utils import (
18
18
  )
19
19
 
20
20
 
21
- __version__ = '1.4.0'
21
+ __version__ = '1.4.2'
22
22
 
23
23
 
24
24
  versioning_manager = VersioningManager()
@@ -433,7 +433,9 @@ class VersioningManager(object):
433
433
  ):
434
434
  return
435
435
 
436
- if clauseelement.is_insert:
436
+ if isinstance(clauseelement, str):
437
+ op = None
438
+ elif clauseelement.is_insert:
437
439
  op = Operation.INSERT
438
440
  elif clauseelement.is_delete:
439
441
  op = Operation.DELETE
@@ -21,31 +21,27 @@ from __future__ import absolute_import
21
21
  flask = None
22
22
  try:
23
23
  import flask
24
- from flask import request
25
- from flask.globals import _app_ctx_stack, _request_ctx_stack
24
+ from flask import current_app, has_app_context, has_request_context, request
26
25
  except ImportError:
27
26
  pass
28
27
  from sqlalchemy_utils import ImproperlyConfigured
28
+
29
29
  from .base import Plugin
30
30
 
31
31
 
32
32
  def fetch_current_user_id():
33
- from flask_login import current_user
33
+ if has_request_context():
34
+ from flask_login import current_user
34
35
 
35
- # Return None if we are outside of request context.
36
- if _app_ctx_stack.top is None or _request_ctx_stack.top is None:
37
- return
38
- try:
39
- return current_user.id
40
- except AttributeError:
41
- return
36
+ try:
37
+ return current_user.id
38
+ except AttributeError:
39
+ return
42
40
 
43
41
 
44
42
  def fetch_remote_addr():
45
- # Return None if we are outside of request context.
46
- if _app_ctx_stack.top is None or _request_ctx_stack.top is None:
47
- return
48
- return request.remote_addr
43
+ if has_app_context() and has_request_context():
44
+ return request.remote_addr
49
45
 
50
46
 
51
47
  class FlaskPlugin(Plugin):
@@ -5,7 +5,7 @@ You can use the plugin in same way as other plugins::
5
5
 
6
6
  meta_plugin = TransactionMetaPlugin()
7
7
 
8
- versioning_manager.plugins.add(meta_plugin)
8
+ versioning_manager.plugins.append(meta_plugin)
9
9
 
10
10
 
11
11
  TransactionMetaPlugin creates a simple model called TransactionMeta. This class