Nexom 1.0.9__tar.gz → 1.0.11__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 (70) hide show
  1. {nexom-1.0.9/src/Nexom.egg-info → nexom-1.0.11}/PKG-INFO +2 -1
  2. {nexom-1.0.9 → nexom-1.0.11}/pyproject.toml +2 -1
  3. {nexom-1.0.9 → nexom-1.0.11/src/Nexom.egg-info}/PKG-INFO +2 -1
  4. nexom-1.0.11/src/Nexom.egg-info/requires.txt +2 -0
  5. {nexom-1.0.9 → nexom-1.0.11}/src/nexom/app/cookie.py +8 -4
  6. {nexom-1.0.9 → nexom-1.0.11}/src/nexom/assets/app/templates/default.html +1 -1
  7. nexom-1.0.9/src/Nexom.egg-info/requires.txt +0 -1
  8. {nexom-1.0.9 → nexom-1.0.11}/LICENSE +0 -0
  9. {nexom-1.0.9 → nexom-1.0.11}/README.md +0 -0
  10. {nexom-1.0.9 → nexom-1.0.11}/setup.cfg +0 -0
  11. {nexom-1.0.9 → nexom-1.0.11}/src/Nexom.egg-info/SOURCES.txt +0 -0
  12. {nexom-1.0.9 → nexom-1.0.11}/src/Nexom.egg-info/dependency_links.txt +0 -0
  13. {nexom-1.0.9 → nexom-1.0.11}/src/Nexom.egg-info/entry_points.txt +0 -0
  14. {nexom-1.0.9 → nexom-1.0.11}/src/Nexom.egg-info/top_level.txt +0 -0
  15. {nexom-1.0.9 → nexom-1.0.11}/src/nexom/__init__.py +0 -0
  16. {nexom-1.0.9 → nexom-1.0.11}/src/nexom/__main__.py +0 -0
  17. {nexom-1.0.9 → nexom-1.0.11}/src/nexom/app/__init__.py +0 -0
  18. {nexom-1.0.9 → nexom-1.0.11}/src/nexom/app/auth.py +0 -0
  19. {nexom-1.0.9 → nexom-1.0.11}/src/nexom/app/db.py +0 -0
  20. {nexom-1.0.9 → nexom-1.0.11}/src/nexom/app/http_status_codes.py +0 -0
  21. {nexom-1.0.9 → nexom-1.0.11}/src/nexom/app/middleware.py +0 -0
  22. {nexom-1.0.9 → nexom-1.0.11}/src/nexom/app/path.py +0 -0
  23. {nexom-1.0.9 → nexom-1.0.11}/src/nexom/app/request.py +0 -0
  24. {nexom-1.0.9 → nexom-1.0.11}/src/nexom/app/response.py +0 -0
  25. {nexom-1.0.9 → nexom-1.0.11}/src/nexom/app/template.py +0 -0
  26. {nexom-1.0.9 → nexom-1.0.11}/src/nexom/app/user.py +0 -0
  27. {nexom-1.0.9 → nexom-1.0.11}/src/nexom/assets/app/__init__.py +0 -0
  28. {nexom-1.0.9 → nexom-1.0.11}/src/nexom/assets/app/__pycache__/__init__.cpython-313.pyc +0 -0
  29. {nexom-1.0.9 → nexom-1.0.11}/src/nexom/assets/app/config.py +0 -0
  30. {nexom-1.0.9 → nexom-1.0.11}/src/nexom/assets/app/gunicorn.conf.py +0 -0
  31. {nexom-1.0.9 → nexom-1.0.11}/src/nexom/assets/app/pages/__init__.py +0 -0
  32. {nexom-1.0.9 → nexom-1.0.11}/src/nexom/assets/app/pages/__pycache__/__init__.cpython-313.pyc +0 -0
  33. {nexom-1.0.9 → nexom-1.0.11}/src/nexom/assets/app/pages/_templates.py +0 -0
  34. {nexom-1.0.9 → nexom-1.0.11}/src/nexom/assets/app/pages/default.py +0 -0
  35. {nexom-1.0.9 → nexom-1.0.11}/src/nexom/assets/app/pages/document.py +0 -0
  36. {nexom-1.0.9 → nexom-1.0.11}/src/nexom/assets/app/router.py +0 -0
  37. {nexom-1.0.9 → nexom-1.0.11}/src/nexom/assets/app/static/dog.jpeg +0 -0
  38. {nexom-1.0.9 → nexom-1.0.11}/src/nexom/assets/app/static/github.png +0 -0
  39. {nexom-1.0.9 → nexom-1.0.11}/src/nexom/assets/app/static/style.css +0 -0
  40. {nexom-1.0.9 → nexom-1.0.11}/src/nexom/assets/app/templates/base.html +0 -0
  41. {nexom-1.0.9 → nexom-1.0.11}/src/nexom/assets/app/templates/document.html +0 -0
  42. {nexom-1.0.9 → nexom-1.0.11}/src/nexom/assets/app/templates/footer.html +0 -0
  43. {nexom-1.0.9 → nexom-1.0.11}/src/nexom/assets/app/templates/header.html +0 -0
  44. {nexom-1.0.9 → nexom-1.0.11}/src/nexom/assets/app/wsgi.py +0 -0
  45. {nexom-1.0.9 → nexom-1.0.11}/src/nexom/assets/auth/__init__.py +0 -0
  46. {nexom-1.0.9 → nexom-1.0.11}/src/nexom/assets/auth/__pycache__/__init__.cpython-313.pyc +0 -0
  47. {nexom-1.0.9 → nexom-1.0.11}/src/nexom/assets/auth/config.py +0 -0
  48. {nexom-1.0.9 → nexom-1.0.11}/src/nexom/assets/auth/gunicorn.conf.py +0 -0
  49. {nexom-1.0.9 → nexom-1.0.11}/src/nexom/assets/auth/wsgi.py +0 -0
  50. {nexom-1.0.9 → nexom-1.0.11}/src/nexom/assets/auth_page/login.html +0 -0
  51. {nexom-1.0.9 → nexom-1.0.11}/src/nexom/assets/auth_page/signup.html +0 -0
  52. {nexom-1.0.9 → nexom-1.0.11}/src/nexom/assets/error_page/error.html +0 -0
  53. {nexom-1.0.9 → nexom-1.0.11}/src/nexom/assets/gateway/apache_app.conf +0 -0
  54. {nexom-1.0.9 → nexom-1.0.11}/src/nexom/assets/gateway/nginx_app.conf +0 -0
  55. {nexom-1.0.9 → nexom-1.0.11}/src/nexom/buildTools/__init__.py +0 -0
  56. {nexom-1.0.9 → nexom-1.0.11}/src/nexom/buildTools/build.py +0 -0
  57. {nexom-1.0.9 → nexom-1.0.11}/src/nexom/buildTools/run.py +0 -0
  58. {nexom-1.0.9 → nexom-1.0.11}/src/nexom/core/__init__.py +0 -0
  59. {nexom-1.0.9 → nexom-1.0.11}/src/nexom/core/error.py +0 -0
  60. {nexom-1.0.9 → nexom-1.0.11}/src/nexom/core/log.py +0 -0
  61. {nexom-1.0.9 → nexom-1.0.11}/src/nexom/core/object_html_render.py +0 -0
  62. {nexom-1.0.9 → nexom-1.0.11}/src/nexom/templates/__init__.py +0 -0
  63. {nexom-1.0.9 → nexom-1.0.11}/src/nexom/templates/auth.py +0 -0
  64. {nexom-1.0.9 → nexom-1.0.11}/tests/test_buildtools.py +0 -0
  65. {nexom-1.0.9 → nexom-1.0.11}/tests/test_http_status_codes.py +0 -0
  66. {nexom-1.0.9 → nexom-1.0.11}/tests/test_middleware.py +0 -0
  67. {nexom-1.0.9 → nexom-1.0.11}/tests/test_path_routing.py +0 -0
  68. {nexom-1.0.9 → nexom-1.0.11}/tests/test_request.py +0 -0
  69. {nexom-1.0.9 → nexom-1.0.11}/tests/test_response.py +0 -0
  70. {nexom-1.0.9 → nexom-1.0.11}/tests/test_static.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: Nexom
3
- Version: 1.0.9
3
+ Version: 1.0.11
4
4
  Summary: Lightweight Python Web Framework (WSGI)
5
5
  Author: TouriAida
6
6
  License: MIT License
@@ -33,6 +33,7 @@ Requires-Python: >=3.10
33
33
  Description-Content-Type: text/markdown
34
34
  License-File: LICENSE
35
35
  Requires-Dist: gunicorn>=21.2
36
+ Requires-Dist: multipart>=1.3.0
36
37
  Dynamic: license-file
37
38
 
38
39
 
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "Nexom"
7
- version = "1.0.9"
7
+ version = "1.0.11"
8
8
  description = "Lightweight Python Web Framework (WSGI)"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.10"
@@ -13,6 +13,7 @@ authors = [{ name = "TouriAida" }]
13
13
  keywords = ["wsgi", "web", "framework"]
14
14
  dependencies = [
15
15
  "gunicorn>=21.2",
16
+ "multipart>=1.3.0",
16
17
  ]
17
18
 
18
19
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: Nexom
3
- Version: 1.0.9
3
+ Version: 1.0.11
4
4
  Summary: Lightweight Python Web Framework (WSGI)
5
5
  Author: TouriAida
6
6
  License: MIT License
@@ -33,6 +33,7 @@ Requires-Python: >=3.10
33
33
  Description-Content-Type: text/markdown
34
34
  License-File: LICENSE
35
35
  Requires-Dist: gunicorn>=21.2
36
+ Requires-Dist: multipart>=1.3.0
36
37
  Dynamic: license-file
37
38
 
38
39
 
@@ -0,0 +1,2 @@
1
+ gunicorn>=21.2
2
+ multipart>=1.3.0
@@ -16,19 +16,23 @@ class Cookie:
16
16
  *,
17
17
  http_only: bool = True,
18
18
  secure: bool = True,
19
- **kwargs: str | int,
19
+ **kwargs: str | int | None,
20
20
  ) -> None:
21
- if name is None:
22
- raise CookieInvalidValueError("Cookie name cannot be None")
21
+ if not name:
22
+ raise CookieInvalidValueError("Cookie name cannot be empty or None")
23
+ if "\r" in value or "\n" in value:
24
+ raise CookieInvalidValueError("Cookie value contains invalid characters")
23
25
  self.name: str = name
24
26
  self.value: str = value
25
27
  self.http_only: bool = http_only
26
28
  self.secure: bool = secure
27
- self.attributes: dict[str, str | int] = kwargs
29
+ self.attributes: dict[str, str | int | None] = kwargs
28
30
 
29
31
  def __repr__(self) -> str:
30
32
  parts = [f"{self.name}={self.value};"]
31
33
  for k, v in self.attributes.items():
34
+ if v is None:
35
+ continue
32
36
  parts.append(f"{k}={v};")
33
37
  if self.http_only:
34
38
  parts.append("HttpOnly;")
@@ -2,7 +2,7 @@
2
2
  <Insert main>
3
3
  <div class="thumbnail-container">
4
4
  <div class="message-card">
5
- <h1>Welcome Nexom v1.0.9 Deeeeeeeev</h1>
5
+ <h1>Welcome Nexom v1.0.10 Deeeeeeeev</h1>
6
6
  <p>How are you? I'm fine! Thank you!</p>
7
7
  </div>
8
8
  <div class="accounts-card">
@@ -1 +0,0 @@
1
- gunicorn>=21.2
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