fasthtml-tailwindcss 4.3.3.post1__tar.gz → 4.3.4__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 (28) hide show
  1. {fasthtml_tailwindcss-4.3.3.post1 → fasthtml_tailwindcss-4.3.4}/PKG-INFO +26 -7
  2. {fasthtml_tailwindcss-4.3.3.post1 → fasthtml_tailwindcss-4.3.4}/README.md +24 -5
  3. fasthtml_tailwindcss-4.3.4/packages/cli/binaries.json +12 -0
  4. {fasthtml_tailwindcss-4.3.3.post1 → fasthtml_tailwindcss-4.3.4}/packages/cli/pyproject.toml +1 -1
  5. {fasthtml_tailwindcss-4.3.3.post1 → fasthtml_tailwindcss-4.3.4}/pyproject.toml +10 -10
  6. {fasthtml_tailwindcss-4.3.3.post1 → fasthtml_tailwindcss-4.3.4}/src/fasthtml_tailwindcss/build.py +3 -3
  7. {fasthtml_tailwindcss-4.3.3.post1 → fasthtml_tailwindcss-4.3.4}/src/fasthtml_tailwindcss/client.py +7 -2
  8. {fasthtml_tailwindcss-4.3.3.post1 → fasthtml_tailwindcss-4.3.4}/src/fasthtml_tailwindcss/config.py +7 -0
  9. {fasthtml_tailwindcss-4.3.3.post1 → fasthtml_tailwindcss-4.3.4}/tests/test_build.py +1 -0
  10. {fasthtml_tailwindcss-4.3.3.post1 → fasthtml_tailwindcss-4.3.4}/tests/test_sessions.py +1 -0
  11. fasthtml_tailwindcss-4.3.3.post1/packages/cli/binaries.json +0 -12
  12. {fasthtml_tailwindcss-4.3.3.post1 → fasthtml_tailwindcss-4.3.4}/.gitignore +0 -0
  13. {fasthtml_tailwindcss-4.3.3.post1 → fasthtml_tailwindcss-4.3.4}/LICENSE +0 -0
  14. {fasthtml_tailwindcss-4.3.3.post1 → fasthtml_tailwindcss-4.3.4}/packages/cli/LICENSE +0 -0
  15. {fasthtml_tailwindcss-4.3.3.post1 → fasthtml_tailwindcss-4.3.4}/packages/cli/README.md +0 -0
  16. {fasthtml_tailwindcss-4.3.3.post1 → fasthtml_tailwindcss-4.3.4}/packages/cli/TAILWIND-LICENSE +0 -0
  17. {fasthtml_tailwindcss-4.3.3.post1 → fasthtml_tailwindcss-4.3.4}/packages/cli/hatch_build.py +0 -0
  18. {fasthtml_tailwindcss-4.3.3.post1 → fasthtml_tailwindcss-4.3.4}/packages/cli/src/fasthtml_tailwindcss_cli/__init__.py +0 -0
  19. {fasthtml_tailwindcss-4.3.3.post1 → fasthtml_tailwindcss-4.3.4}/scripts/check_release.py +0 -0
  20. {fasthtml_tailwindcss-4.3.3.post1 → fasthtml_tailwindcss-4.3.4}/scripts/filter_publish.py +0 -0
  21. {fasthtml_tailwindcss-4.3.3.post1 → fasthtml_tailwindcss-4.3.4}/src/fasthtml_tailwindcss/__init__.py +0 -0
  22. {fasthtml_tailwindcss-4.3.3.post1 → fasthtml_tailwindcss-4.3.4}/src/fasthtml_tailwindcss/compiler.py +0 -0
  23. {fasthtml_tailwindcss-4.3.3.post1 → fasthtml_tailwindcss-4.3.4}/src/fasthtml_tailwindcss/py.typed +0 -0
  24. {fasthtml_tailwindcss-4.3.3.post1 → fasthtml_tailwindcss-4.3.4}/src/fasthtml_tailwindcss/worker.py +0 -0
  25. {fasthtml_tailwindcss-4.3.3.post1 → fasthtml_tailwindcss-4.3.4}/tests/conftest.py +0 -0
  26. {fasthtml_tailwindcss-4.3.3.post1 → fasthtml_tailwindcss-4.3.4}/tests/test_component.py +0 -0
  27. {fasthtml_tailwindcss-4.3.3.post1 → fasthtml_tailwindcss-4.3.4}/tests/test_releases.py +0 -0
  28. {fasthtml_tailwindcss-4.3.3.post1 → fasthtml_tailwindcss-4.3.4}/tests/test_uvicorn.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: fasthtml-tailwindcss
3
- Version: 4.3.3.post1
3
+ Version: 4.3.4
4
4
  Summary: Tailwind CSS for FastHTML with a persistent development watcher and a build command for production CSS.
5
5
  Project-URL: Documentation, https://github.com/SpaceShaman/fasthtml-tailwindcss#readme
6
6
  Project-URL: Homepage, https://github.com/SpaceShaman/fasthtml-tailwindcss
@@ -23,7 +23,7 @@ Requires-Python: >=3.11
23
23
  Requires-Dist: filelock>=3.16
24
24
  Requires-Dist: python-fasthtml>=0.14.13
25
25
  Provides-Extra: dev
26
- Requires-Dist: fasthtml-tailwindcss-cli<5,>=4; extra == 'dev'
26
+ Requires-Dist: fasthtml-tailwindcss-cli>=4.3.3; extra == 'dev'
27
27
  Description-Content-Type: text/markdown
28
28
 
29
29
  # fasthtml-tailwindcss
@@ -42,10 +42,29 @@ Tailwind CSS for [FastHTML](https://github.com/AnswerDotAI/fasthtml) with a pers
42
42
 
43
43
  ## Installation
44
44
 
45
- | Environment | uv | pip |
46
- | --- | --- | --- |
47
- | Development and builds | `uv add "fasthtml-tailwindcss[dev]"` | `pip install "fasthtml-tailwindcss[dev]"` |
48
- | Production | `uv add fasthtml-tailwindcss` | `pip install fasthtml-tailwindcss` |
45
+ - Development and builds:
46
+
47
+ ```sh
48
+ uv add "fasthtml-tailwindcss[dev]"
49
+ ```
50
+
51
+ Or with pip:
52
+
53
+ ```sh
54
+ pip install "fasthtml-tailwindcss[dev]"
55
+ ```
56
+
57
+ - Production:
58
+
59
+ ```sh
60
+ uv add fasthtml-tailwindcss
61
+ ```
62
+
63
+ Or with pip:
64
+
65
+ ```sh
66
+ pip install fasthtml-tailwindcss
67
+ ```
49
68
 
50
69
  The `dev` extra installs the standalone compiler through [fasthtml-tailwindcss-cli](https://pypi.org/project/fasthtml-tailwindcss-cli/). No Node.js or npm is needed. Production only needs the wrapper and generated CSS.
51
70
 
@@ -112,7 +131,7 @@ TailwindHead(
112
131
  - `css`: CSS appended after the input, useful for `@theme`, variants, and `@source inline(...)`.
113
132
  - `output`: CSS file path, defaulting to `./static/tailwind.css`. The stylesheet URL follows this path, so mount its directory at the corresponding URL.
114
133
 
115
- Paths are relative to the working directory. The build command uses the application module's directory; run the server from that directory too. Temporary files and compiler logs live in `.fasthtml-tailwindcss/`, which you can add to `.gitignore`.
134
+ Paths are relative to the working directory. The build command uses the application module's directory; run the server from that directory too. Temporary files and compiler logs live in `.fasthtml-tailwindcss/`.
116
135
 
117
136
  Use complete class names such as `"bg-red-500"`; Tailwind cannot detect names constructed with `f"bg-{color}-500"`. Classes in installed component libraries need explicit sources or safelisting.
118
137
 
@@ -14,10 +14,29 @@ Tailwind CSS for [FastHTML](https://github.com/AnswerDotAI/fasthtml) with a pers
14
14
 
15
15
  ## Installation
16
16
 
17
- | Environment | uv | pip |
18
- | --- | --- | --- |
19
- | Development and builds | `uv add "fasthtml-tailwindcss[dev]"` | `pip install "fasthtml-tailwindcss[dev]"` |
20
- | Production | `uv add fasthtml-tailwindcss` | `pip install fasthtml-tailwindcss` |
17
+ - Development and builds:
18
+
19
+ ```sh
20
+ uv add "fasthtml-tailwindcss[dev]"
21
+ ```
22
+
23
+ Or with pip:
24
+
25
+ ```sh
26
+ pip install "fasthtml-tailwindcss[dev]"
27
+ ```
28
+
29
+ - Production:
30
+
31
+ ```sh
32
+ uv add fasthtml-tailwindcss
33
+ ```
34
+
35
+ Or with pip:
36
+
37
+ ```sh
38
+ pip install fasthtml-tailwindcss
39
+ ```
21
40
 
22
41
  The `dev` extra installs the standalone compiler through [fasthtml-tailwindcss-cli](https://pypi.org/project/fasthtml-tailwindcss-cli/). No Node.js or npm is needed. Production only needs the wrapper and generated CSS.
23
42
 
@@ -84,7 +103,7 @@ TailwindHead(
84
103
  - `css`: CSS appended after the input, useful for `@theme`, variants, and `@source inline(...)`.
85
104
  - `output`: CSS file path, defaulting to `./static/tailwind.css`. The stylesheet URL follows this path, so mount its directory at the corresponding URL.
86
105
 
87
- Paths are relative to the working directory. The build command uses the application module's directory; run the server from that directory too. Temporary files and compiler logs live in `.fasthtml-tailwindcss/`, which you can add to `.gitignore`.
106
+ Paths are relative to the working directory. The build command uses the application module's directory; run the server from that directory too. Temporary files and compiler logs live in `.fasthtml-tailwindcss/`.
88
107
 
89
108
  Use complete class names such as `"bg-red-500"`; Tailwind cannot detect names constructed with `f"bg-{color}-500"`. Classes in installed component libraries need explicit sources or safelisting.
90
109
 
@@ -0,0 +1,12 @@
1
+ {
2
+ "version": "4.3.4",
3
+ "sha256": {
4
+ "tailwindcss-linux-arm64": "f6d7baae1d350ed3a2defe98d0b5cc58e37400c0173b2e38d42f690ccc4bbfe1",
5
+ "tailwindcss-linux-arm64-musl": "64853a5d1321b9622eeceb16e28d26889fca409e3b1a2f95453088f776461e44",
6
+ "tailwindcss-linux-x64": "149a8ece5b855587a9c10de6da9dcbcfad0e47c4ed5dca219f721b3eae39d817",
7
+ "tailwindcss-linux-x64-musl": "2a5456987c41ce3311e423b603842af425ea5ac44505162dd348d43ed3b909fd",
8
+ "tailwindcss-macos-arm64": "a516a11b439bfbb5ecd4a2d13b75e6cdcc284dc710aed8731e31d2e5c03895a4",
9
+ "tailwindcss-macos-x64": "7ec771593a1fb8bbd204f70429361b0158f7989e4136bc68d04513bf543a15ba",
10
+ "tailwindcss-windows-x64.exe": "ad84612696f3be102fa005d4827f0df84c7b4570d31c06865ce5fde0311478af"
11
+ }
12
+ }
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "fasthtml-tailwindcss-cli"
3
- version = "4.3.3"
3
+ version = "4.3.4"
4
4
  description = "Platform-specific Tailwind CSS standalone CLI binary for fasthtml-tailwindcss."
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.11"
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "fasthtml-tailwindcss"
3
- version = "4.3.3.post1"
3
+ version = "4.3.4"
4
4
  description = "Tailwind CSS for FastHTML with a persistent development watcher and a build command for production CSS."
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.11"
@@ -21,21 +21,18 @@ classifiers = [
21
21
  ]
22
22
  dependencies = ["filelock>=3.16", "python-fasthtml>=0.14.13"]
23
23
 
24
- [project.optional-dependencies]
25
- dev = ["fasthtml-tailwindcss-cli>=4,<5"]
26
-
27
- [project.scripts]
28
- fasthtml-tailwindcss = "fasthtml_tailwindcss.build:main"
29
-
30
- [tool.uv.sources]
31
- fasthtml-tailwindcss-cli = { path = "packages/cli" }
32
-
33
24
  [project.urls]
34
25
  Documentation = "https://github.com/SpaceShaman/fasthtml-tailwindcss#readme"
35
26
  Homepage = "https://github.com/SpaceShaman/fasthtml-tailwindcss"
36
27
  Issues = "https://github.com/SpaceShaman/fasthtml-tailwindcss/issues"
37
28
  Repository = "https://github.com/SpaceShaman/fasthtml-tailwindcss"
38
29
 
30
+ [project.scripts]
31
+ fasthtml-tailwindcss = "fasthtml_tailwindcss.build:main"
32
+
33
+ [project.optional-dependencies]
34
+ dev = ["fasthtml-tailwindcss-cli>=4.3.3"]
35
+
39
36
  [dependency-groups]
40
37
  build = ["hatchling>=1.27"]
41
38
  test = ["httpx", "pytest", "uvicorn"]
@@ -50,3 +47,6 @@ packages = ["src/fasthtml_tailwindcss"]
50
47
  [tool.hatch.build.targets.sdist]
51
48
  include = ["/src", "/packages/cli", "/pyproject.toml", "/README.md", "/LICENSE", "/tests", "/scripts"]
52
49
  exclude = ["/packages/cli/src/fasthtml_tailwindcss_cli/bin"]
50
+
51
+ [tool.uv.sources]
52
+ fasthtml-tailwindcss-cli = { path = "packages/cli" }
@@ -7,7 +7,7 @@ import sys
7
7
  from pathlib import Path
8
8
 
9
9
  from .compiler import binary_path, input_css
10
- from .config import STATE_DIRECTORY, TailwindConfig
10
+ from .config import TailwindConfig, prepare_state_directory, state_directory
11
11
 
12
12
 
13
13
  def app_head(specification: str):
@@ -35,8 +35,8 @@ def app_head(specification: str):
35
35
 
36
36
  def build(config: TailwindConfig) -> None:
37
37
  root = Path(config.root)
38
- directory = root / STATE_DIRECTORY
39
- directory.mkdir(parents=True, exist_ok=True)
38
+ directory = state_directory(config)
39
+ prepare_state_directory(directory)
40
40
  source = directory / "build-input.css"
41
41
  source.write_text(input_css(config), encoding="utf-8")
42
42
  output = root / config.output
@@ -8,7 +8,12 @@ from threading import Event, Lock, Thread
8
8
  from filelock import FileLock, Timeout
9
9
 
10
10
  from .compiler import stop_process
11
- from .config import TailwindConfig, config_json, state_directory
11
+ from .config import (
12
+ TailwindConfig,
13
+ config_json,
14
+ prepare_state_directory,
15
+ state_directory,
16
+ )
12
17
 
13
18
 
14
19
  def running(directory: Path) -> bool:
@@ -44,7 +49,7 @@ class Session:
44
49
  raise
45
50
 
46
51
  def connect(self) -> None:
47
- self.directory.mkdir(parents=True, exist_ok=True)
52
+ prepare_state_directory(self.directory)
48
53
  with FileLock(str(self.directory / "startup.lock"), timeout=30):
49
54
  (self.directory / "heartbeat").touch()
50
55
  self.wait_for_worker()
@@ -55,3 +55,10 @@ def configuration(
55
55
 
56
56
  def state_directory(config: TailwindConfig) -> Path:
57
57
  return Path(config.root) / STATE_DIRECTORY
58
+
59
+
60
+ def prepare_state_directory(directory: Path) -> None:
61
+ directory.mkdir(parents=True, exist_ok=True)
62
+ gitignore = directory / ".gitignore"
63
+ if not gitignore.exists():
64
+ gitignore.write_text("*\n", encoding="utf-8")
@@ -30,3 +30,4 @@ def test_build_uses_application_directory(project, reference):
30
30
  assert ".p-4{" in (directory / "static" / "tailwind.css").read_text()
31
31
  assert not (project / "static" / "tailwind.css").exists()
32
32
  assert not (directory / ".fasthtml-tailwindcss" / "pid").exists()
33
+ assert (directory / ".fasthtml-tailwindcss" / ".gitignore").read_text() == "*\n"
@@ -78,6 +78,7 @@ def test_concurrent_workers_share_one_build(project):
78
78
  assert len({s.output for s in sessions}) == 1
79
79
  directory = config.state_directory(settings)
80
80
  assert (directory / "active.json").is_file()
81
+ assert (directory / ".gitignore").read_text() == "*\n"
81
82
  assert not (directory / "config.json").exists()
82
83
  assert int((directory / "pid").read_text()) > 0
83
84
 
@@ -1,12 +0,0 @@
1
- {
2
- "version": "4.3.3",
3
- "sha256": {
4
- "tailwindcss-linux-arm64": "55fd0b241214eff3de1e8ee4f22796662f2d2e7a49bcfca7477cfd0bac398195",
5
- "tailwindcss-linux-arm64-musl": "71ea4be79c9de9827545682df3e040053fb535d37c71ed2cfdedf9385a0868e0",
6
- "tailwindcss-linux-x64": "dc61b3ac6b8c9ca874c0cc4c57b2409791a64c5540404ca5f5367360babc313a",
7
- "tailwindcss-linux-x64-musl": "a04d34ceacc8f52cbe8920ad846cdeb61d3d0021dba32db0d1f77c9d9fad7a6c",
8
- "tailwindcss-macos-arm64": "cdf646702987a743464dff4d9c60fd4480d1c1e73dd819a9a67f1078815dce9d",
9
- "tailwindcss-macos-x64": "7922e0953f2110c05976e3bf58f14e643d90427575e766b7d433f5f80cbee7e1",
10
- "tailwindcss-windows-x64.exe": "e0e260ce048014e9268f6237ff18f8ccf02cef521cbd0ae04e82c2cdf7aa3955"
11
- }
12
- }