Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
57 changes: 1 addition & 56 deletions pkgs/by-name/li/litestar/package.nix
Original file line number Diff line number Diff line change
@@ -1,56 +1 @@
{
python3Packages,
lib,
fetchFromGitHub,
}:

python3Packages.buildPythonApplication rec {
pname = "litestar";
version = "2.13.0";
pyproject = true;

build-system = with python3Packages; [
hatchling
];

src = fetchFromGitHub {
owner = "litestar-org";
repo = "litestar";
tag = "v${version}";
hash = "sha256-PR2DVNRtILHs7XwVi9/ZCVRJQFqfGLn1x2gpYtYjHDo=";
};

dependencies = with python3Packages; [
anyio
click
redis
httpx
msgspec
multidict
jinja2
pyyaml
rich
rich-click
typing-extensions
psutil
polyfactory
litestar-htmx
trio
cryptography
psycopg
fsspec
mako
time-machine
asyncpg
picologging
];

meta = {
homepage = "https://litestar.dev/";
platforms = lib.platforms.unix;
maintainers = with lib.maintainers; [ bot-wxt1221 ];
changelog = "https://github.com/litestar-org/litestar/releases/tag/v${version}";
description = "Production-ready, Light, Flexible and Extensible ASGI API framework";
license = lib.licenses.mit;
};
}
{ python3Packages }: with python3Packages; toPythonApplication litestar
113 changes: 113 additions & 0 deletions pkgs/development/python-modules/litestar/default.nix
Original file line number Diff line number Diff line change
@@ -0,0 +1,113 @@
{
lib,
buildPythonPackage,
fetchFromGitHub,

# build-system
hatchling,

# dependencies
anyio,
asyncpg,
click,
cryptography,
fsspec,
httpx,
jinja2,
litestar-htmx,
mako,
msgspec,
multidict,
picologging,
polyfactory,
psutil,
psycopg,
pyyaml,
redis,
rich,
rich-click,
time-machine,
trio,
typing-extensions,

# tests
pytestCheckHook,
pytest-lazy-fixtures,
pytest-xdist,
pytest-mock,
pytest-asyncio,
pytest-timeout,
pytest-rerunfailures,
versionCheckHook,
}:

buildPythonPackage rec {
pname = "litestar";
version = "2.13.0";
pyproject = true;

src = fetchFromGitHub {
owner = "litestar-org";
repo = "litestar";
tag = "v${version}";
hash = "sha256-PR2DVNRtILHs7XwVi9/ZCVRJQFqfGLn1x2gpYtYjHDo=";
};

build-system = [
hatchling
];

dependencies = [
anyio
asyncpg
click
cryptography
fsspec
httpx
jinja2
litestar-htmx
mako
msgspec
multidict
picologging
polyfactory
psutil
psycopg
pyyaml
redis
rich
rich-click
time-machine
trio
typing-extensions
];

nativeCheckInputs = [
pytestCheckHook
pytest-lazy-fixtures
pytest-xdist
pytest-mock
pytest-asyncio
pytest-timeout
pytest-rerunfailures
versionCheckHook
];
versionCheckProgramArg = [ "version" ];

__darwinAllowLocalNetworking = true;

pytestFlagsArray = [
# Follow github CI
"docs/examples/"
];

meta = {
homepage = "https://litestar.dev/";
platforms = lib.platforms.unix;
maintainers = with lib.maintainers; [ bot-wxt1221 ];
changelog = "https://github.com/litestar-org/litestar/releases/tag/v${version}";
description = "Production-ready, Light, Flexible and Extensible ASGI API framework";
license = lib.licenses.mit;
Comment thread
Bot-wxt1221 marked this conversation as resolved.
Outdated
mainProgram = "litestar";
};
}
7 changes: 7 additions & 0 deletions pkgs/development/python-modules/picologging/default.nix
Comment thread
Bot-wxt1221 marked this conversation as resolved.
Outdated
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,12 @@ buildPythonPackage rec {
hash = "sha256-t75D7aNKAifzeCPwtyKp8LoiXtbbXspRFYnsI0gx+V4=";
};

patches = [
# For python 313
# https://github.com/microsoft/picologging/pull/212
./pr-212.patch
Comment thread
Bot-wxt1221 marked this conversation as resolved.
Outdated
];

build-system = [
setuptools
cmake
Expand All @@ -37,6 +43,7 @@ buildPythonPackage rec {
];

dontUseCmakeConfigure = true;
__darwinAllowLocalNetworking = true;

dependencies = [
flaky
Expand Down
94 changes: 94 additions & 0 deletions pkgs/development/python-modules/picologging/pr-212.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
diff --git a/src/picologging/compat.hxx b/src/picologging/compat.hxx
index d3356da..be7a1fc 100644
--- a/src/picologging/compat.hxx
+++ b/src/picologging/compat.hxx
@@ -88,4 +88,12 @@ static inline PyObject* _Py_XNewRef(PyObject *obj)
}
#endif

+// For Python 3.13 and above, PyTime_t is now part of the public API
+#if PY_VERSION_HEX >= 0x030d0000
+#define _PyTime_t PyTime_t
+#define _PyTime_AsSecondsDouble PyTime_AsSecondsDouble
+#define _PyTime_AsMilliseconds PyTime_AsMilliseconds
+#define _PyTime_ROUND_CEILING PyTime_ROUND_CEILING
+#endif
+
#endif // COMPAT_H
\ No newline at end of file

From fe313d8b3dcf0115e1be781e03b20673d3f51c3f Mon Sep 17 00:00:00 2001
From: Anthony Shaw <anthony.p.shaw@gmail.com>
Date: Sat, 14 Sep 2024 17:33:25 +1000
Subject: [PATCH 2/2] Patch other changed APIs for pytime

---
pyproject.toml | 2 +-
src/picologging/compat.hxx | 2 --
src/picologging/logrecord.cxx | 13 +++++++++++++
3 files changed, 14 insertions(+), 3 deletions(-)

diff --git a/pyproject.toml b/pyproject.toml
index 33abe66..27628c9 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -1,7 +1,7 @@
[build-system]
requires = [
"setuptools>=65.4.1",
- "scikit-build>=0.17.0",
+ "scikit-build>=0.18.0",
"cmake>=3.18",
"ninja",
]
diff --git a/src/picologging/compat.hxx b/src/picologging/compat.hxx
index be7a1fc..7c6970d 100644
--- a/src/picologging/compat.hxx
+++ b/src/picologging/compat.hxx
@@ -92,8 +92,6 @@ static inline PyObject* _Py_XNewRef(PyObject *obj)
#if PY_VERSION_HEX >= 0x030d0000
#define _PyTime_t PyTime_t
#define _PyTime_AsSecondsDouble PyTime_AsSecondsDouble
-#define _PyTime_AsMilliseconds PyTime_AsMilliseconds
-#define _PyTime_ROUND_CEILING PyTime_ROUND_CEILING
#endif

#endif // COMPAT_H
\ No newline at end of file
diff --git a/src/picologging/logrecord.cxx b/src/picologging/logrecord.cxx
index cec68c9..9f5cf86 100644
--- a/src/picologging/logrecord.cxx
+++ b/src/picologging/logrecord.cxx
@@ -16,11 +16,19 @@ _PyFloat_FromPyTime(_PyTime_t t)

_PyTime_t current_time()
{
+#if PY_VERSION_HEX >= 0x030d0000
+ _PyTime_t t;
+ if (PyTime_Time(&t) < 0) {
+ return -1;
+ }
+ return t;
+#else
_PyTime_t t;
if (_PyTime_GetSystemClockWithInfo(&t, NULL) < 0) {
return -1;
}
return t;
+#endif
}

PyObject* LogRecord_new(PyTypeObject* type, PyObject *initargs, PyObject *kwds)
@@ -162,7 +170,12 @@ LogRecord* LogRecord_create(LogRecord* self, PyObject* name, PyObject* msg, PyOb
}

self->created = _PyTime_AsSecondsDouble(ctime);
+// msecs conversion isn't in 3.13 API
+#if PY_VERSION_HEX < 0x030d0000
self->msecs = _PyTime_AsMilliseconds(ctime, _PyTime_ROUND_CEILING);
+#else
+ self->msecs = 0;
+#endif
self->relativeCreated = _PyFloat_FromPyTime((ctime - startTime) * 1000);
self->thread = PyThread_get_thread_ident(); // Only supported in Python 3.7+, if big demand for 3.6 patch this out for the old API.
// TODO #2 : See if there is a performant way to get the thread name.
6 changes: 3 additions & 3 deletions pkgs/development/python-modules/psycopg/default.nix
Comment thread
Bot-wxt1221 marked this conversation as resolved.
Outdated
Original file line number Diff line number Diff line change
Expand Up @@ -35,13 +35,13 @@

let
pname = "psycopg";
version = "3.2.3";
version = "3.2.4";

src = fetchFromGitHub {
owner = "psycopg";
repo = pname;
repo = "psycopg";
Comment thread
Bot-wxt1221 marked this conversation as resolved.
Outdated
tag = version;
hash = "sha256-vcUZvQeD5MnEM02phk73I9dpf0Eug95V7Rspi0s6S2M=";
hash = "sha256-gicntSAEK5VO67M2gAGR6wSwKQwgnbHxVUoPpaAbaDk=";
};

patches = [
Expand Down
2 changes: 2 additions & 0 deletions pkgs/top-level/python-packages.nix
Original file line number Diff line number Diff line change
Expand Up @@ -7603,6 +7603,8 @@ self: super: with self; {

litestar-htmx = callPackage ../development/python-modules/litestar-htmx { };

litestar = callPackage ../development/python-modules/litestar { };

littleutils = callPackage ../development/python-modules/littleutils { };

livelossplot = callPackage ../development/python-modules/livelossplot { };
Expand Down