rainycode 1.4.0__tar.gz → 1.4.2__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 (35) hide show
  1. {rainycode-1.4.0 → rainycode-1.4.2}/PKG-INFO +1 -1
  2. {rainycode-1.4.0 → rainycode-1.4.2}/common_models/base_model.py +1 -1
  3. {rainycode-1.4.0 → rainycode-1.4.2}/common_models/wechat_model.py +2 -2
  4. {rainycode-1.4.0 → rainycode-1.4.2}/common_utils/captcha_util.py +10 -1
  5. {rainycode-1.4.0 → rainycode-1.4.2}/pyproject.toml +1 -1
  6. {rainycode-1.4.0 → rainycode-1.4.2}/rainycode.egg-info/PKG-INFO +1 -1
  7. {rainycode-1.4.0 → rainycode-1.4.2}/common_base/aiorequests.py +0 -0
  8. {rainycode-1.4.0 → rainycode-1.4.2}/common_base/consts.py +0 -0
  9. {rainycode-1.4.0 → rainycode-1.4.2}/common_base/exception.py +0 -0
  10. {rainycode-1.4.0 → rainycode-1.4.2}/common_base/logging.py +0 -0
  11. {rainycode-1.4.0 → rainycode-1.4.2}/common_base/response.py +0 -0
  12. {rainycode-1.4.0 → rainycode-1.4.2}/common_depends/auth_depend.py +0 -0
  13. {rainycode-1.4.0 → rainycode-1.4.2}/common_models/__init__.py +0 -0
  14. {rainycode-1.4.0 → rainycode-1.4.2}/common_models/user_model.py +0 -0
  15. {rainycode-1.4.0 → rainycode-1.4.2}/common_servers/api/auth_api.py +0 -0
  16. {rainycode-1.4.0 → rainycode-1.4.2}/common_servers/api/wechat_api.py +0 -0
  17. {rainycode-1.4.0 → rainycode-1.4.2}/common_servers/router.py +0 -0
  18. {rainycode-1.4.0 → rainycode-1.4.2}/common_servers/schemas/auth_schema.py +0 -0
  19. {rainycode-1.4.0 → rainycode-1.4.2}/common_servers/service/auth_svc.py +0 -0
  20. {rainycode-1.4.0 → rainycode-1.4.2}/common_servers/service/wechat_svc.py +0 -0
  21. {rainycode-1.4.0 → rainycode-1.4.2}/common_utils/bcrypt_util.py +0 -0
  22. {rainycode-1.4.0 → rainycode-1.4.2}/common_utils/ip_util.py +0 -0
  23. {rainycode-1.4.0 → rainycode-1.4.2}/common_utils/jwt_util.py +0 -0
  24. {rainycode-1.4.0 → rainycode-1.4.2}/common_utils/snowflake_util.py +0 -0
  25. {rainycode-1.4.0 → rainycode-1.4.2}/common_utils/wechat_util.py +0 -0
  26. {rainycode-1.4.0 → rainycode-1.4.2}/core/base_config.py +0 -0
  27. {rainycode-1.4.0 → rainycode-1.4.2}/core/databases/aiodb.py +0 -0
  28. {rainycode-1.4.0 → rainycode-1.4.2}/core/databases/aioredis.py +0 -0
  29. {rainycode-1.4.0 → rainycode-1.4.2}/core/middleware/http_middleware.py +0 -0
  30. {rainycode-1.4.0 → rainycode-1.4.2}/core/start.py +0 -0
  31. {rainycode-1.4.0 → rainycode-1.4.2}/rainycode.egg-info/SOURCES.txt +0 -0
  32. {rainycode-1.4.0 → rainycode-1.4.2}/rainycode.egg-info/dependency_links.txt +0 -0
  33. {rainycode-1.4.0 → rainycode-1.4.2}/rainycode.egg-info/requires.txt +0 -0
  34. {rainycode-1.4.0 → rainycode-1.4.2}/rainycode.egg-info/top_level.txt +0 -0
  35. {rainycode-1.4.0 → rainycode-1.4.2}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: rainycode
3
- Version: 1.4.0
3
+ Version: 1.4.2
4
4
  Summary: FastAPI base modules
5
5
  Requires-Python: >=3.10
6
6
  Requires-Dist: aerich==0.9.2
@@ -102,7 +102,7 @@ class BaseModel(MySQLUtils):
102
102
  **kwargs: Any
103
103
  ) -> None:
104
104
  if not getattr(self, 'id', 0) and kwargs.get('id_uuid', False) and 'id' in self._meta.fields:
105
- setattr(self, 'id', str(uuid.uuid4()).replace('-', ''))
105
+ self.id = str(uuid.uuid4()).replace('-', '')
106
106
  return await super().save(using_db=using_db, update_fields=update_fields, force_create=force_create,
107
107
  force_update=force_update)
108
108
 
@@ -32,8 +32,8 @@ class WechatUser(CreateModel):
32
32
  微信用户关联表
33
33
  """
34
34
  id = fields.IntField(pk=True, description="主键")
35
- user = fields.ForeignKeyField("main.User", related_name="wechat_users", description="关联用户")
36
- wechat_app = fields.ForeignKeyField("main.WechatApp", related_name="wechat_users", description="关联微信应用")
35
+ user = fields.ForeignKeyField("main.User", related_name="wechat_users", db_constraint=False, description="关联用户")
36
+ wechat_app = fields.ForeignKeyField("main.WechatApp", related_name="wechat_users", db_constraint=False, description="关联微信应用")
37
37
  openid = fields.CharField(max_length=64, index=True, description="微信OpenID")
38
38
  unionid = fields.CharField(max_length=64, null=True, index=True, description="微信UnionID")
39
39
  session_key = fields.CharField(max_length=128, null=True, description="会话密钥(仅小程序)")
@@ -10,7 +10,16 @@ class CaptchaUtil:
10
10
  """
11
11
  验证码工具类
12
12
  """
13
- @classmethod
13
+ @classmethod
14
+ def generate_code(cls, length: int = 6) -> str:
15
+ """
16
+ 生成随机验证码(纯随机生成;存储/TTL/校验由调用方自行处理)
17
+ 字符集去 0/O、1/I/L,避免误读
18
+ """
19
+ alphabet = "ABCDEFGHJKLMNPQRSTUVWXYZ23456789"
20
+ return "".join(random.choice(alphabet) for _ in range(length))
21
+
22
+ @classmethod
14
23
  def generate_captcha(cls) -> tuple[str, str]:
15
24
  """
16
25
  生成带有噪声和干扰的验证码图片:4位随机字符
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "rainycode"
7
- version = "1.4.0"
7
+ version = "1.4.2"
8
8
  description = "FastAPI base modules"
9
9
  requires-python = ">=3.10"
10
10
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: rainycode
3
- Version: 1.4.0
3
+ Version: 1.4.2
4
4
  Summary: FastAPI base modules
5
5
  Requires-Python: >=3.10
6
6
  Requires-Dist: aerich==0.9.2
File without changes
File without changes
File without changes