diff --git a/server/pypi/packages/pydantic-core/meta.yaml b/server/pypi/packages/pydantic-core/meta.yaml new file mode 100644 index 0000000000..9f7fb6a14a --- /dev/null +++ b/server/pypi/packages/pydantic-core/meta.yaml @@ -0,0 +1,9 @@ +package: + name: pydantic-core + version: "2.27.2" + +requirements: + build: + - rust + host: + - jiter 0.8.0 diff --git a/server/pypi/packages/pydantic-core/patches/pyo3_no_interpreter.patch b/server/pypi/packages/pydantic-core/patches/pyo3_no_interpreter.patch new file mode 100644 index 0000000000..766418ba8d --- /dev/null +++ b/server/pypi/packages/pydantic-core/patches/pyo3_no_interpreter.patch @@ -0,0 +1,35 @@ +--- src_original/Cargo.toml 1970-01-01 01:00:00.000000000 +0100 ++++ src/Cargo.toml 2025-01-27 17:04:56.552799973 +0100 +@@ -29,7 +29,7 @@ + [dependencies] + # TODO it would be very nice to remove the "py-clone" feature as it can panic, + # but needs a bit of work to make sure it's not used in the codebase +-pyo3 = { version = "0.22.6", features = ["generate-import-lib", "num-bigint", "py-clone"] } ++pyo3 = { version = "0.23.3", features = ["generate-import-lib", "num-bigint", "py-clone", "abi3-py311"] } + regex = "1.11.1" + strum = { version = "0.26.3", features = ["derive"] } + strum_macros = "0.26.4" +@@ -46,7 +46,7 @@ + num-bigint = "0.4.6" + python3-dll-a = "0.2.10" + uuid = "1.11.0" +-jiter = { version = "0.7.1", features = ["python"] } ++jiter = { version = "0.8.0", features = ["python"] } + hex = "0.4.3" + + [lib] +@@ -74,12 +74,12 @@ + strip = false + + [dev-dependencies] +-pyo3 = { version = "0.22.6", features = ["auto-initialize"] } ++pyo3 = { version = "0.23.3", features = ["auto-initialize"] } + + [build-dependencies] + version_check = "0.9.5" + # used where logic has to be version/distribution specific, e.g. pypy +-pyo3-build-config = { version = "0.22.6" } ++pyo3-build-config = { version = "0.23.3" } + + [lints.clippy] + dbg_macro = "warn" diff --git a/server/pypi/packages/pydantic-core/test.py b/server/pypi/packages/pydantic-core/test.py new file mode 100644 index 0000000000..f7ca080239 --- /dev/null +++ b/server/pypi/packages/pydantic-core/test.py @@ -0,0 +1,50 @@ +import unittest + + +class TestCryptography(unittest.TestCase): + + def test_fernet(self): + from cryptography.fernet import Fernet + key = Fernet.generate_key() + f = Fernet(key) + msg = b"my deep dark secret" + token = f.encrypt(msg) + self.assertEqual(msg, f.decrypt(token)) + + def test_x509(self): + from cryptography.hazmat.backends import default_backend + from cryptography import x509 + from cryptography.x509.oid import NameOID + from textwrap import dedent + cert_pem = dedent(""" + -----BEGIN CERTIFICATE----- + MIIEhDCCA2ygAwIBAgIIF2d9E030vlcwDQYJKoZIhvcNAQELBQAwVDELMAkGA1UE + BhMCVVMxHjAcBgNVBAoTFUdvb2dsZSBUcnVzdCBTZXJ2aWNlczElMCMGA1UEAxMc + R29vZ2xlIEludGVybmV0IEF1dGhvcml0eSBHMzAeFw0xODA0MTcxMzI0MzhaFw0x + ODA3MTAxMjM5MDBaMGkxCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlh + MRYwFAYDVQQHDA1Nb3VudGFpbiBWaWV3MRMwEQYDVQQKDApHb29nbGUgSW5jMRgw + FgYDVQQDDA93d3cuYW5kcm9pZC5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw + ggEKAoIBAQC3t8zd3s9oSLFUkogYhD//BoFwvtHnpUHW2n9g3KiAXCHHG5+8QD4Q + abgAzrpeQqewWngE9B3Feq4rUo9vsk0UpB7Pj97TAgkkmpRMcW0lU4p4rKNhDfri + c+SvnuZuy048v8Ta7DtMymuCIyejekjTg7Gf/U46PqK87ZbV5RTadSgfvlymnkQb + SwJLUA8qe/H98bEARpQLyJvWi8dUSurpfKHdbXfd1Dk9GACHNAX9A4bV0BdQBmPu + 6BMGeY5O4CYwwM51U/W+ptyc5eFRMi10up1cck3Udwl/jw5OAx5NP7geuxuIc4uu + l41Zwbnr5v6sdJJsWMvMg7ot/97+EHvXAgMBAAGjggFDMIIBPzATBgNVHSUEDDAK + BggrBgEFBQcDATAaBgNVHREEEzARgg93d3cuYW5kcm9pZC5jb20waAYIKwYBBQUH + AQEEXDBaMC0GCCsGAQUFBzAChiFodHRwOi8vcGtpLmdvb2cvZ3NyMi9HVFNHSUFH + My5jcnQwKQYIKwYBBQUHMAGGHWh0dHA6Ly9vY3NwLnBraS5nb29nL0dUU0dJQUcz + MB0GA1UdDgQWBBSYOxV7LRH/9yKSFL5jLJfhwZxCUDAMBgNVHRMBAf8EAjAAMB8G + A1UdIwQYMBaAFHfCuFCaZ3Z2sS3ChtCDoH6mfrpLMCEGA1UdIAQaMBgwDAYKKwYB + BAHWeQIFAzAIBgZngQwBAgIwMQYDVR0fBCowKDAmoCSgIoYgaHR0cDovL2NybC5w + a2kuZ29vZy9HVFNHSUFHMy5jcmwwDQYJKoZIhvcNAQELBQADggEBAI4fv5P+VLSE + /f+hOoPuxWx2TEDdc/Gt2u3XUiGkMrOSW2k1ob0kUjBDILhear3tpp+V5N5H0NzZ + Ymvpbbl3ZD5Bk5Co9FIJwFNMfGAlzSAduuYdAblOXTkLzlyLwn5qbzDjbkBIS+0O + l+1zga+3gZGYbDQiByFyq8P/uAKzc0BAX82bgXDkIC3E26YvvTnUpkKh6l6bOOTB + xaTg8Uh6KsKGch837BDbNegs3wHw3T3s7PC+H7dvqjELqN7y2GNNA361/aPPCWgs + jUsy3XnYSd8og34IzY3+W2b3TrU8P+p+pBwOjgXuNHZwobU+3/e2s4/0AfDilpI0 + KX/1hroho1I= + -----END CERTIFICATE----- + """).encode("ASCII") + cert = x509.load_pem_x509_certificate(cert_pem, default_backend()) + domain = cert.subject.get_attributes_for_oid(NameOID.COMMON_NAME)[0].value + self.assertEqual("www.android.com", domain)