feat: initial project setup with implementation plan
- Add PLAN.md with 40-step checklist across 10 phases - Add CLAUDE.md with project-specific instructions - Set up nix flake with FastHTML/MonsterUI dependencies - Create Python package skeleton (src/animaltrack) - Vendor FastHTML and MonsterUI documentation - Add Docker build configuration 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
34
packages/apswutils.nix
Normal file
34
packages/apswutils.nix
Normal file
@@ -0,0 +1,34 @@
|
||||
{
|
||||
lib,
|
||||
buildPythonPackage,
|
||||
fetchPypi,
|
||||
setuptools,
|
||||
fastcore,
|
||||
apsw,
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "apswutils";
|
||||
version = "0.1.0";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
hash = "sha256:0n5yvm132rdzr7ixp0i07n8hk0zpwijjbnffrmr0z2khkljnnmsc";
|
||||
};
|
||||
|
||||
build-system = [ setuptools ];
|
||||
|
||||
dependencies = [
|
||||
fastcore
|
||||
apsw
|
||||
];
|
||||
|
||||
doCheck = false;
|
||||
|
||||
meta = {
|
||||
description = "Utilities for working with APSW";
|
||||
homepage = "https://github.com/AnswerDotAI/apswutils";
|
||||
license = lib.licenses.asl20;
|
||||
};
|
||||
}
|
||||
30
packages/fastcore.nix
Normal file
30
packages/fastcore.nix
Normal file
@@ -0,0 +1,30 @@
|
||||
{
|
||||
lib,
|
||||
buildPythonPackage,
|
||||
fetchPypi,
|
||||
setuptools,
|
||||
packaging,
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "fastcore";
|
||||
version = "1.8.16";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
hash = "sha256:1jc47l215dfc5d24pcg5zch25ingxpy1yd4afb2gndlbv08mr38d";
|
||||
};
|
||||
|
||||
build-system = [ setuptools ];
|
||||
|
||||
dependencies = [ packaging ];
|
||||
|
||||
doCheck = false;
|
||||
|
||||
meta = {
|
||||
description = "Python supercharged for fastai development";
|
||||
homepage = "https://github.com/fastai/fastcore";
|
||||
license = lib.licenses.asl20;
|
||||
};
|
||||
}
|
||||
34
packages/fastlite.nix
Normal file
34
packages/fastlite.nix
Normal file
@@ -0,0 +1,34 @@
|
||||
{
|
||||
lib,
|
||||
buildPythonPackage,
|
||||
fetchPypi,
|
||||
setuptools,
|
||||
fastcore,
|
||||
apswutils,
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "fastlite";
|
||||
version = "0.2.1";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
hash = "sha256:1hi5i68rpffghp254gpv332baqfkdl41j9zzxrdig5yicbm0p3qb";
|
||||
};
|
||||
|
||||
build-system = [ setuptools ];
|
||||
|
||||
dependencies = [
|
||||
fastcore
|
||||
apswutils
|
||||
];
|
||||
|
||||
doCheck = false;
|
||||
|
||||
meta = {
|
||||
description = "A bit of extra usability for sqlite";
|
||||
homepage = "https://github.com/AnswerDotAI/fastlite";
|
||||
license = lib.licenses.asl20;
|
||||
};
|
||||
}
|
||||
30
packages/fastmigrate.nix
Normal file
30
packages/fastmigrate.nix
Normal file
@@ -0,0 +1,30 @@
|
||||
{
|
||||
lib,
|
||||
buildPythonPackage,
|
||||
fetchPypi,
|
||||
setuptools,
|
||||
apswutils,
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "fastmigrate";
|
||||
version = "0.4.0";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
hash = "sha256:02pbmw3bxs4cdr1ni7z9832m8dwb12nmbjmmg5j55pczxjc2656v";
|
||||
};
|
||||
|
||||
build-system = [ setuptools ];
|
||||
|
||||
dependencies = [ apswutils ];
|
||||
|
||||
doCheck = false;
|
||||
|
||||
meta = {
|
||||
description = "Database migration tool for APSW/SQLite";
|
||||
homepage = "https://github.com/AnswerDotAI/fastmigrate";
|
||||
license = lib.licenses.asl20;
|
||||
};
|
||||
}
|
||||
30
packages/mistletoe.nix
Normal file
30
packages/mistletoe.nix
Normal file
@@ -0,0 +1,30 @@
|
||||
{
|
||||
lib,
|
||||
buildPythonPackage,
|
||||
fetchPypi,
|
||||
setuptools,
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "mistletoe";
|
||||
version = "1.5.0";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
hash = "sha256:0i2d4v9rrk6275pjqf816izhv79pbinifdg0hb45w1zqigk3pdv8";
|
||||
};
|
||||
|
||||
build-system = [ setuptools ];
|
||||
|
||||
# No runtime dependencies
|
||||
dependencies = [ ];
|
||||
|
||||
doCheck = false;
|
||||
|
||||
meta = {
|
||||
description = "A fast, extensible Markdown parser in pure Python";
|
||||
homepage = "https://github.com/miyuchina/mistletoe";
|
||||
license = lib.licenses.mit;
|
||||
};
|
||||
}
|
||||
38
packages/monsterui.nix
Normal file
38
packages/monsterui.nix
Normal file
@@ -0,0 +1,38 @@
|
||||
{
|
||||
lib,
|
||||
buildPythonPackage,
|
||||
fetchPypi,
|
||||
setuptools,
|
||||
python-fasthtml,
|
||||
fastcore,
|
||||
lxml,
|
||||
mistletoe,
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "monsterui";
|
||||
version = "1.0.34";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
hash = "sha256:03krc10adsx6xf09lxw8gs8lq7jja8yyhw5hjrgss24fgal6163b";
|
||||
};
|
||||
|
||||
build-system = [ setuptools ];
|
||||
|
||||
dependencies = [
|
||||
python-fasthtml
|
||||
fastcore
|
||||
lxml
|
||||
mistletoe
|
||||
];
|
||||
|
||||
doCheck = false;
|
||||
|
||||
meta = {
|
||||
description = "Beautiful UI components for FastHTML";
|
||||
homepage = "https://github.com/AnswerDotAI/MonsterUI";
|
||||
license = lib.licenses.asl20;
|
||||
};
|
||||
}
|
||||
51
packages/python-fasthtml.nix
Normal file
51
packages/python-fasthtml.nix
Normal file
@@ -0,0 +1,51 @@
|
||||
{
|
||||
lib,
|
||||
buildPythonPackage,
|
||||
fetchPypi,
|
||||
setuptools,
|
||||
fastcore,
|
||||
python-dateutil,
|
||||
starlette,
|
||||
oauthlib,
|
||||
itsdangerous,
|
||||
uvicorn,
|
||||
httpx,
|
||||
fastlite,
|
||||
python-multipart,
|
||||
beautifulsoup4,
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "python-fasthtml";
|
||||
version = "0.12.35";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchPypi {
|
||||
pname = "python_fasthtml";
|
||||
inherit version;
|
||||
hash = "sha256:15iq7zykqa1i7mkir2wzg0js2dvjplarq1jzb9igj61qb5f25p1l";
|
||||
};
|
||||
|
||||
build-system = [ setuptools ];
|
||||
|
||||
dependencies = [
|
||||
fastcore
|
||||
python-dateutil
|
||||
starlette
|
||||
oauthlib
|
||||
itsdangerous
|
||||
uvicorn
|
||||
httpx
|
||||
fastlite
|
||||
python-multipart
|
||||
beautifulsoup4
|
||||
];
|
||||
|
||||
doCheck = false;
|
||||
|
||||
meta = {
|
||||
description = "FastHTML - Modern web applications in pure Python";
|
||||
homepage = "https://github.com/AnswerDotAI/fasthtml";
|
||||
license = lib.licenses.asl20;
|
||||
};
|
||||
}
|
||||
31
packages/sse-starlette.nix
Normal file
31
packages/sse-starlette.nix
Normal file
@@ -0,0 +1,31 @@
|
||||
{
|
||||
lib,
|
||||
buildPythonPackage,
|
||||
fetchPypi,
|
||||
setuptools,
|
||||
anyio,
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "sse-starlette";
|
||||
version = "3.0.3";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchPypi {
|
||||
pname = "sse_starlette";
|
||||
inherit version;
|
||||
hash = "sha256:0wdr348bi3hd9ivbvcvsahxs441rn1vai30ck7m00qp18y3v1kw8";
|
||||
};
|
||||
|
||||
build-system = [ setuptools ];
|
||||
|
||||
dependencies = [ anyio ];
|
||||
|
||||
doCheck = false;
|
||||
|
||||
meta = {
|
||||
description = "SSE plugin for Starlette";
|
||||
homepage = "https://github.com/sysid/sse-starlette";
|
||||
license = lib.licenses.bsd3;
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user