python-plugins 0.1.9__tar.gz → 0.2.0__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.
- {python_plugins-0.1.9 → python_plugins-0.2.0}/CHANGES.rst +8 -0
- {python_plugins-0.1.9 → python_plugins-0.2.0}/LICENSE.rst +1 -1
- {python_plugins-0.1.9 → python_plugins-0.2.0}/PKG-INFO +3 -3
- {python_plugins-0.1.9 → python_plugins-0.2.0}/docs/usage.rst +7 -2
- {python_plugins-0.1.9 → python_plugins-0.2.0}/pyproject.toml +1 -1
- {python_plugins-0.1.9 → python_plugins-0.2.0}/requirements/test.in +2 -1
- python_plugins-0.2.0/src/python_plugins/__about__.py +1 -0
- {python_plugins-0.1.9 → python_plugins-0.2.0}/src/python_plugins/convert/__init__.py +1 -0
- {python_plugins-0.1.9 → python_plugins-0.2.0}/src/python_plugins/crypto/str_to_list.py +4 -1
- {python_plugins-0.1.9 → python_plugins-0.2.0}/src/python_plugins/forms/fields/datetime.py +4 -4
- {python_plugins-0.1.9 → python_plugins-0.2.0}/src/python_plugins/forms/fields/select.py +3 -3
- python_plugins-0.2.0/src/python_plugins/forms/mixins/user.py +29 -0
- python_plugins-0.2.0/src/python_plugins/forms/widgets/__init__.py +0 -0
- {python_plugins-0.1.9 → python_plugins-0.2.0}/src/python_plugins/jwt/jwt.py +0 -9
- python_plugins-0.2.0/src/python_plugins/models/__init__.py +0 -0
- {python_plugins-0.1.9 → python_plugins-0.2.0}/src/python_plugins/models/mixins/token_minxin.py +4 -1
- python_plugins-0.2.0/tests/__init__.py +1 -0
- python_plugins-0.2.0/tests/test_forms.py +65 -0
- python_plugins-0.1.9/src/python_plugins/__about__.py +0 -1
- python_plugins-0.1.9/src/python_plugins/__init__.py +0 -1
- python_plugins-0.1.9/src/python_plugins/forms/__init__.py +0 -2
- python_plugins-0.1.9/tests/test_forms.py +0 -19
- {python_plugins-0.1.9 → python_plugins-0.2.0}/.github/workflows/release.yml +0 -0
- {python_plugins-0.1.9 → python_plugins-0.2.0}/.gitignore +0 -0
- {python_plugins-0.1.9 → python_plugins-0.2.0}/.readthedocs.yaml +0 -0
- {python_plugins-0.1.9 → python_plugins-0.2.0}/README.rst +0 -0
- {python_plugins-0.1.9 → python_plugins-0.2.0}/docs/Makefile +0 -0
- {python_plugins-0.1.9 → python_plugins-0.2.0}/docs/api.rst +0 -0
- {python_plugins-0.1.9 → python_plugins-0.2.0}/docs/changes.rst +0 -0
- {python_plugins-0.1.9 → python_plugins-0.2.0}/docs/conf.py +0 -0
- {python_plugins-0.1.9 → python_plugins-0.2.0}/docs/examples.rst +0 -0
- {python_plugins-0.1.9 → python_plugins-0.2.0}/docs/index.rst +0 -0
- {python_plugins-0.1.9 → python_plugins-0.2.0}/docs/make.bat +0 -0
- {python_plugins-0.1.9 → python_plugins-0.2.0}/docs/requirements.txt +0 -0
- {python_plugins-0.1.9 → python_plugins-0.2.0}/examples/README.rst +0 -0
- {python_plugins-0.1.9 → python_plugins-0.2.0}/requirements/build.in +0 -0
- {python_plugins-0.1.9/tests → python_plugins-0.2.0/src/python_plugins}/__init__.py +0 -0
- {python_plugins-0.1.9 → python_plugins-0.2.0}/src/python_plugins/convert/datetime_str.py +0 -0
- {python_plugins-0.1.9 → python_plugins-0.2.0}/src/python_plugins/convert/pretty.py +0 -0
- {python_plugins-0.1.9 → python_plugins-0.2.0}/src/python_plugins/convert/xml.py +0 -0
- {python_plugins-0.1.9 → python_plugins-0.2.0}/src/python_plugins/crypto/__init__.py +0 -0
- {python_plugins-0.1.9 → python_plugins-0.2.0}/src/python_plugins/crypto/fernet.py +0 -0
- {python_plugins-0.1.9 → python_plugins-0.2.0}/src/python_plugins/crypto/file_to_file.py +0 -0
- {python_plugins-0.1.9 → python_plugins-0.2.0}/src/python_plugins/dumps/__init__.py +0 -0
- {python_plugins-0.1.9 → python_plugins-0.2.0}/src/python_plugins/dumps/postgresql_dump.py +0 -0
- {python_plugins-0.1.9 → python_plugins-0.2.0}/src/python_plugins/email/__init__.py +0 -0
- {python_plugins-0.1.9 → python_plugins-0.2.0}/src/python_plugins/email/smtp.py +0 -0
- {python_plugins-0.1.9 → python_plugins-0.2.0}/src/python_plugins/examples/higher_order_functions.py +0 -0
- {python_plugins-0.1.9/src/python_plugins/forms/widgets → python_plugins-0.2.0/src/python_plugins/forms}/__init__.py +0 -0
- {python_plugins-0.1.9 → python_plugins-0.2.0}/src/python_plugins/forms/fields/__init__.py +0 -0
- {python_plugins-0.1.9 → python_plugins-0.2.0}/src/python_plugins/forms/fields/json.py +0 -0
- {python_plugins-0.1.9 → python_plugins-0.2.0}/src/python_plugins/forms/fields/switch.py +0 -0
- {python_plugins-0.1.9 → python_plugins-0.2.0}/src/python_plugins/forms/fields/taglist.py +0 -0
- {python_plugins-0.1.9/src/python_plugins/models → python_plugins-0.2.0/src/python_plugins/forms/mixins}/__init__.py +0 -0
- {python_plugins-0.1.9 → python_plugins-0.2.0}/src/python_plugins/forms/widgets/datetime.py +0 -0
- {python_plugins-0.1.9 → python_plugins-0.2.0}/src/python_plugins/forms/widgets/file.py +0 -0
- {python_plugins-0.1.9 → python_plugins-0.2.0}/src/python_plugins/forms/widgets/select.py +0 -0
- {python_plugins-0.1.9 → python_plugins-0.2.0}/src/python_plugins/hashes/__init__.py +0 -0
- {python_plugins-0.1.9 → python_plugins-0.2.0}/src/python_plugins/hashes/hash.py +0 -0
- {python_plugins-0.1.9 → python_plugins-0.2.0}/src/python_plugins/jwt/__init__.py +0 -0
- {python_plugins-0.1.9 → python_plugins-0.2.0}/src/python_plugins/models/mixins/__init__.py +0 -0
- {python_plugins-0.1.9 → python_plugins-0.2.0}/src/python_plugins/models/mixins/data_mixin.py +0 -0
- {python_plugins-0.1.9 → python_plugins-0.2.0}/src/python_plugins/models/mixins/primary_key_mixin.py +0 -0
- {python_plugins-0.1.9 → python_plugins-0.2.0}/src/python_plugins/models/mixins/timestamp_mixin.py +0 -0
- {python_plugins-0.1.9 → python_plugins-0.2.0}/src/python_plugins/models/mixins/user_minxin.py +0 -0
- {python_plugins-0.1.9 → python_plugins-0.2.0}/src/python_plugins/models/update.py +0 -0
- {python_plugins-0.1.9 → python_plugins-0.2.0}/src/python_plugins/process/__init__.py +0 -0
- {python_plugins-0.1.9 → python_plugins-0.2.0}/src/python_plugins/process/python_venv_process.py +0 -0
- {python_plugins-0.1.9 → python_plugins-0.2.0}/src/python_plugins/process/sub_process.py +0 -0
- {python_plugins-0.1.9 → python_plugins-0.2.0}/src/python_plugins/random/__init__.py +0 -0
- {python_plugins-0.1.9 → python_plugins-0.2.0}/src/python_plugins/random/random_str.py +0 -0
- {python_plugins-0.1.9 → python_plugins-0.2.0}/src/python_plugins/utils/__init__.py +0 -0
- {python_plugins-0.1.9 → python_plugins-0.2.0}/src/python_plugins/utils/remove_pycache.py +0 -0
- {python_plugins-0.1.9 → python_plugins-0.2.0}/src/python_plugins/weixin/biz_data_crypt.py +0 -0
- {python_plugins-0.1.9 → python_plugins-0.2.0}/src/python_plugins/weixin/error_code.py +0 -0
- {python_plugins-0.1.9 → python_plugins-0.2.0}/src/python_plugins/weixin/format_response.py +0 -0
- {python_plugins-0.1.9 → python_plugins-0.2.0}/src/python_plugins/weixin/wechat.py +0 -0
- {python_plugins-0.1.9 → python_plugins-0.2.0}/src/python_plugins/weixin/wechat_crypt.py +0 -0
- {python_plugins-0.1.9 → python_plugins-0.2.0}/src/python_plugins/weixin/weixin_api.py +0 -0
- {python_plugins-0.1.9 → python_plugins-0.2.0}/tests/conftest.py +0 -0
- {python_plugins-0.1.9 → python_plugins-0.2.0}/tests/test_crypt_file.py +0 -0
- {python_plugins-0.1.9 → python_plugins-0.2.0}/tests/test_crypto.py +0 -0
- {python_plugins-0.1.9 → python_plugins-0.2.0}/tests/test_email.py +0 -0
- {python_plugins-0.1.9 → python_plugins-0.2.0}/tests/test_jwt.py +0 -0
- {python_plugins-0.1.9 → python_plugins-0.2.0}/tests/test_process.py +0 -0
- {python_plugins-0.1.9 → python_plugins-0.2.0}/tests/test_random.py +0 -0
- {python_plugins-0.1.9 → python_plugins-0.2.0}/tests/test_sqlalchemy.py +0 -0
- {python_plugins-0.1.9 → python_plugins-0.2.0}/tests/test_utils.py +0 -0
- {python_plugins-0.1.9 → python_plugins-0.2.0}/tests/test_weixin.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
MIT License
|
|
2
2
|
|
|
3
|
-
Copyright (c) 2024-present
|
|
3
|
+
Copyright (c) 2024-present DavidDongHua <david.dong.hua@gmail.com>
|
|
4
4
|
|
|
5
5
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
6
|
of this software and associated documentation files (the "Software"), to deal
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: python-plugins
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.2.0
|
|
4
4
|
Summary: A collection of Python functions and classes.
|
|
5
5
|
Project-URL: Documentation, https://python-plugins.readthedocs.io
|
|
6
6
|
Project-URL: Source, https://github.com/ojso/python-plugins
|
|
7
7
|
Project-URL: Homepage, https://github.com/ojso/python-plugins
|
|
8
|
-
Author-email:
|
|
8
|
+
Author-email: David Hua <david.dong.hua@gmail.com>
|
|
9
9
|
License: MIT License
|
|
10
10
|
|
|
11
|
-
Copyright (c) 2024-present
|
|
11
|
+
Copyright (c) 2024-present DavidDongHua <david.dong.hua@gmail.com>
|
|
12
12
|
|
|
13
13
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
14
14
|
of this software and associated documentation files (the "Software"), to deal
|
|
@@ -42,14 +42,19 @@ mixins
|
|
|
42
42
|
.. code-block:: python
|
|
43
43
|
|
|
44
44
|
from flask_sqlalchemy import SQLAlchemy
|
|
45
|
+
from sqlalchemy.orm import DeclarativeBase
|
|
46
|
+
|
|
45
47
|
from python_plugins.models.mixins import PrimaryKeyMixin
|
|
46
48
|
from python_plugins.models.mixins import UserMixin
|
|
47
49
|
from python_plugins.models.mixins import DataMixin
|
|
48
50
|
from python_plugins.models.mixins import TimestampMixin
|
|
49
51
|
|
|
50
|
-
|
|
52
|
+
class Base(DeclarativeBase):
|
|
53
|
+
pass
|
|
54
|
+
|
|
55
|
+
db = SQLAlchemy(model_class=Base)
|
|
51
56
|
|
|
52
|
-
class User(PrimaryKeyMixin, DataMixin, TimestampMixin, UserMixin
|
|
57
|
+
class User(db.models,PrimaryKeyMixin, DataMixin, TimestampMixin, UserMixin):
|
|
53
58
|
__tablename__ = "users"
|
|
54
59
|
|
|
55
60
|
remove_pycache
|
|
@@ -10,7 +10,7 @@ readme = "README.rst"
|
|
|
10
10
|
license = { file = "LICENSE.rst" }
|
|
11
11
|
keywords = ["plugin", "utils"]
|
|
12
12
|
authors = [
|
|
13
|
-
{ name = "
|
|
13
|
+
{ name = "David Hua", email = "david.dong.hua@gmail.com" },
|
|
14
14
|
]
|
|
15
15
|
classifiers = [
|
|
16
16
|
"Development Status :: 3 - Alpha",
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "0.2.0"
|
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
import base64
|
|
2
2
|
import os
|
|
3
3
|
import random
|
|
4
|
+
import string
|
|
4
5
|
from cryptography.fernet import Fernet
|
|
5
6
|
from cryptography.hazmat.primitives import hashes
|
|
6
7
|
from cryptography.hazmat.primitives.kdf.pbkdf2 import PBKDF2HMAC
|
|
7
|
-
|
|
8
|
+
|
|
9
|
+
def rand_letter(n: int):
|
|
10
|
+
return "".join(random.choices(string.ascii_letters + string.digits, k=n))
|
|
8
11
|
|
|
9
12
|
|
|
10
13
|
def bytes_to_url64str(bstr: bytes):
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import time
|
|
2
2
|
import datetime
|
|
3
|
-
|
|
3
|
+
import wtforms.fields
|
|
4
4
|
from ..widgets.datetime import DateTimePickerWidget
|
|
5
5
|
from ..widgets.datetime import TimePickerWidget
|
|
6
6
|
|
|
7
|
-
class DateTimeField(
|
|
7
|
+
class DateTimeField(wtforms.fields.DateTimeField):
|
|
8
8
|
"""
|
|
9
9
|
Allows modifying the datetime format of a DateTimeField using form_args.
|
|
10
10
|
"""
|
|
@@ -28,7 +28,7 @@ class DateTimeField(wtforms_fields.DateTimeField):
|
|
|
28
28
|
)
|
|
29
29
|
|
|
30
30
|
|
|
31
|
-
class TimeField(
|
|
31
|
+
class TimeField(wtforms.fields.Field):
|
|
32
32
|
"""
|
|
33
33
|
A text field which stores a `datetime.time` object.
|
|
34
34
|
Accepts time string in multiple formats: 20:10, 20:10:00, 10:00 am, 9:30pm, etc.
|
|
@@ -59,7 +59,7 @@ class TimeField(wtforms_fields.Field):
|
|
|
59
59
|
:param kwargs:
|
|
60
60
|
Any additional parameters
|
|
61
61
|
"""
|
|
62
|
-
super(
|
|
62
|
+
super().__init__(label, validators, **kwargs)
|
|
63
63
|
|
|
64
64
|
self.formats = formats or (
|
|
65
65
|
"%H:%M:%S",
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import re
|
|
2
|
-
|
|
2
|
+
import wtforms.fields
|
|
3
3
|
from ..widgets.select import Select2Widget
|
|
4
4
|
from ..widgets.select import Select2TagsWidget
|
|
5
5
|
|
|
6
6
|
|
|
7
|
-
class Select2Field(
|
|
7
|
+
class Select2Field(wtforms.fields.SelectField):
|
|
8
8
|
"""
|
|
9
9
|
`Select2 <https://github.com/ivaynberg/select2>`_ styled select widget.
|
|
10
10
|
|
|
@@ -68,7 +68,7 @@ class Select2Field(wtforms_fields.SelectField):
|
|
|
68
68
|
super(Select2Field, self).pre_validate(form)
|
|
69
69
|
|
|
70
70
|
|
|
71
|
-
class Select2TagsField(
|
|
71
|
+
class Select2TagsField(wtforms.fields.StringField):
|
|
72
72
|
"""`Select2 <http://ivaynberg.github.com/select2/#tags>`_ styled text field.
|
|
73
73
|
You must include select2.js, form-x.x.x.js and select2 stylesheet for it to work.
|
|
74
74
|
"""
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
from wtforms import StringField
|
|
2
|
+
from wtforms import PasswordField
|
|
3
|
+
from wtforms import BooleanField
|
|
4
|
+
from wtforms import SubmitField
|
|
5
|
+
from wtforms.validators import ValidationError
|
|
6
|
+
from wtforms.validators import DataRequired
|
|
7
|
+
from wtforms.validators import EqualTo
|
|
8
|
+
from wtforms.validators import Length
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class LoginForm:
|
|
12
|
+
username = StringField("Username", validators=[DataRequired()])
|
|
13
|
+
password = PasswordField("Password", validators=[DataRequired()])
|
|
14
|
+
remember_me = BooleanField("Remember Me")
|
|
15
|
+
submit = SubmitField("login")
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
class RegisterForm:
|
|
19
|
+
username = StringField(
|
|
20
|
+
"Username", validators=[DataRequired(), Length(min=6, max=50)]
|
|
21
|
+
)
|
|
22
|
+
email = StringField("Email", validators=[DataRequired()])
|
|
23
|
+
password = PasswordField(
|
|
24
|
+
"Password", validators=[DataRequired(), Length(min=8, max=50)]
|
|
25
|
+
)
|
|
26
|
+
password_repeat = PasswordField(
|
|
27
|
+
"Repeat Password", validators=[DataRequired(), EqualTo("password")]
|
|
28
|
+
)
|
|
29
|
+
submit = SubmitField("Register")
|
|
File without changes
|
|
@@ -26,12 +26,3 @@ def jwt_decode(encoded, key: str, algorithm="HS256"):
|
|
|
26
26
|
|
|
27
27
|
payload = jwt.decode(encoded, key, algorithm)
|
|
28
28
|
return payload
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
# try:
|
|
32
|
-
# ...
|
|
33
|
-
# except Exception as e:
|
|
34
|
-
# # import sys
|
|
35
|
-
# # print(sys.exc_info())
|
|
36
|
-
# # return None,str(e)
|
|
37
|
-
# return None
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
from wtforms.form import Form
|
|
2
|
+
from python_plugins.forms.fields import JSONField
|
|
3
|
+
from python_plugins.forms.fields import DateTimeField
|
|
4
|
+
from python_plugins.forms.mixins.user import LoginForm
|
|
5
|
+
from python_plugins.forms.mixins.user import RegisterForm
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
class DummyPostData(dict):
|
|
9
|
+
def getlist(self, key):
|
|
10
|
+
v = self[key]
|
|
11
|
+
if not isinstance(v, (list, tuple)):
|
|
12
|
+
v = [v]
|
|
13
|
+
return v
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
class UserLoginForm(Form, LoginForm):
|
|
17
|
+
pass
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
class UserRegisterForm(Form, RegisterForm):
|
|
21
|
+
pass
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
def test_fields():
|
|
25
|
+
class F(Form):
|
|
26
|
+
json_field = JSONField()
|
|
27
|
+
datetime_field = DateTimeField()
|
|
28
|
+
|
|
29
|
+
formdata = DummyPostData(
|
|
30
|
+
json_field="[1,2,3]",
|
|
31
|
+
datetime_field="2000-01-01 12:12:12",
|
|
32
|
+
)
|
|
33
|
+
|
|
34
|
+
f = F(formdata)
|
|
35
|
+
assert f.validate()
|
|
36
|
+
|
|
37
|
+
json_field_text = f.json_field()
|
|
38
|
+
assert '<textarea id="json_field" name="json_field">' in json_field_text
|
|
39
|
+
assert "[1, 2, 3]</textarea>" in json_field_text
|
|
40
|
+
|
|
41
|
+
datetime_field_text = f.datetime_field()
|
|
42
|
+
assert "<input" in datetime_field_text
|
|
43
|
+
assert (
|
|
44
|
+
'data-date-format="YYYY-MM-DD HH:mm:ss" data-role="datetimepicker"'
|
|
45
|
+
in datetime_field_text
|
|
46
|
+
)
|
|
47
|
+
assert 'value="2000-01-01 12:12:12"' in datetime_field_text
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
def test_user_form():
|
|
51
|
+
login_form = UserLoginForm()
|
|
52
|
+
|
|
53
|
+
for k in login_form:
|
|
54
|
+
# print(k.label())
|
|
55
|
+
# print(k())
|
|
56
|
+
assert k() is not None
|
|
57
|
+
|
|
58
|
+
assert "username" in login_form.username()
|
|
59
|
+
|
|
60
|
+
register_form = UserRegisterForm()
|
|
61
|
+
|
|
62
|
+
for k in register_form:
|
|
63
|
+
# print(k.label())
|
|
64
|
+
# print(k())
|
|
65
|
+
assert k() is not None
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
__version__ = "0.1.9"
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
from .utils.remove_pycache import remove_pycache
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
from wtforms.form import Form
|
|
2
|
-
from python_plugins.forms.fields import JSONField
|
|
3
|
-
from python_plugins.forms.fields import DateTimeField
|
|
4
|
-
|
|
5
|
-
class F(Form):
|
|
6
|
-
a = JSONField()
|
|
7
|
-
b = DateTimeField()
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
def test_fields():
|
|
11
|
-
f=F()
|
|
12
|
-
|
|
13
|
-
# print(f.a())
|
|
14
|
-
assert "textarea" in f.a()
|
|
15
|
-
|
|
16
|
-
# print(f.b())
|
|
17
|
-
assert "input" in f.b()
|
|
18
|
-
|
|
19
|
-
|
|
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
|
{python_plugins-0.1.9 → python_plugins-0.2.0}/src/python_plugins/examples/higher_order_functions.py
RENAMED
|
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
|
{python_plugins-0.1.9 → python_plugins-0.2.0}/src/python_plugins/models/mixins/data_mixin.py
RENAMED
|
File without changes
|
{python_plugins-0.1.9 → python_plugins-0.2.0}/src/python_plugins/models/mixins/primary_key_mixin.py
RENAMED
|
File without changes
|
{python_plugins-0.1.9 → python_plugins-0.2.0}/src/python_plugins/models/mixins/timestamp_mixin.py
RENAMED
|
File without changes
|
{python_plugins-0.1.9 → python_plugins-0.2.0}/src/python_plugins/models/mixins/user_minxin.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{python_plugins-0.1.9 → python_plugins-0.2.0}/src/python_plugins/process/python_venv_process.py
RENAMED
|
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
|