1{
2 lib,
3 buildPythonPackage,
4 cryptography,
5 cython,
6 fetchFromGitHub,
7 pythonOlder,
8 setuptools,
9 wheel,
10}:
11
12buildPythonPackage rec {
13 pname = "oracledb";
14 version = "3.3.0";
15 pyproject = true;
16
17 disabled = pythonOlder "3.9";
18
19 src = fetchFromGitHub {
20 owner = "oracle";
21 repo = "python-oracledb";
22 tag = "v${version}";
23 fetchSubmodules = true;
24 hash = "sha256-SHIEl4pzuQBJ02KRPmOydFtmVD9qF3LGk9WPiDSpVzQ=";
25 };
26
27 postPatch = ''
28 substituteInPlace pyproject.toml \
29 --replace-fail "cython == 3.1" "cython"
30 '';
31
32 build-system = [
33 cython
34 setuptools
35 wheel
36 ];
37
38 dependencies = [ cryptography ];
39
40 # Checks need an Oracle database
41 doCheck = false;
42
43 pythonImportsCheck = [ "oracledb" ];
44
45 meta = {
46 description = "Python driver for Oracle Database";
47 homepage = "https://oracle.github.io/python-oracledb";
48 changelog = "https://github.com/oracle/python-oracledb/blob/v${version}/doc/src/release_notes.rst";
49 license = with lib.licenses; [
50 asl20 # and or
51 upl
52 ];
53 maintainers = with lib.maintainers; [ harvidsen ];
54 };
55}