diff --git a/pkgs/development/python-modules/azure-kusto-data/default.nix b/pkgs/development/python-modules/azure-kusto-data/default.nix index a4ead5a9be5a..869e972a0161 100644 --- a/pkgs/development/python-modules/azure-kusto-data/default.nix +++ b/pkgs/development/python-modules/azure-kusto-data/default.nix @@ -1,17 +1,20 @@ { lib, - buildPythonPackage, - fetchPypi, - setuptools, - python-dateutil, - requests, - azure-identity, - msal, - ijson, - azure-core, - asgiref, aiohttp, + asgiref, + azure-core, + azure-identity, + buildPythonPackage, + fetchFromGitHub, + ijson, + msal, pandas, + pytest-asyncio, + pytestCheckHook, + python-dateutil, + pythonOlder, + requests, + setuptools, }: buildPythonPackage rec { @@ -19,40 +22,54 @@ buildPythonPackage rec { version = "4.6.1"; pyproject = true; - src = fetchPypi { - inherit pname version; - hash = "sha256-tfOnb6rFjTzg4af26gK5gk1185mejAiaDvetE/r4L0Q="; + disabled = pythonOlder "3.10"; + + src = fetchFromGitHub { + owner = "Azure"; + repo = "azure-kusto-python"; + rev = "refs/tags/v${version}"; + hash = "sha256-rm8G3/WAUlK1/80uk3uiTqDA5hUIr+VVZEmPe0mYBjI="; }; + sourceRoot = "${src.name}/${pname}"; + build-system = [ setuptools ]; dependencies = [ + azure-core + azure-identity + ijson + msal python-dateutil requests - azure-identity - msal - ijson - azure-core ]; optional-dependencies = { - pandas = [ pandas ]; aio = [ aiohttp asgiref ]; + pandas = [ pandas ]; }; - # Tests require secret connection strings - # and a network connection. - doCheck = false; + nativeCheckInputs = [ + pytest-asyncio + pytestCheckHook + ] ++ lib.flatten (builtins.attrValues optional-dependencies); pythonImportsCheck = [ "azure.kusto.data" ]; + disabledTestPaths = [ + # Tests require network access + "tests/aio/test_async_token_providers.py" + "tests/test_token_providers.py" + "tests/test_e2e_data.py" + ]; + meta = { - changelog = "https://github.com/Azure/azure-kusto-python/releases/tag/v${version}"; description = "Kusto Data Client"; - homepage = "https://github.com/Azure/azure-kusto-python"; + homepage = "https://pypi.org/project/azure-kusto-data/"; + changelog = "https://github.com/Azure/azure-kusto-python/releases/tag/v${version}"; license = lib.licenses.mit; maintainers = with lib.maintainers; [ pyrox0 ]; }; diff --git a/pkgs/development/python-modules/azure-kusto-ingest/default.nix b/pkgs/development/python-modules/azure-kusto-ingest/default.nix index d5572fbbf56e..9dff851fd88e 100644 --- a/pkgs/development/python-modules/azure-kusto-ingest/default.nix +++ b/pkgs/development/python-modules/azure-kusto-ingest/default.nix @@ -1,13 +1,18 @@ { lib, - buildPythonPackage, - fetchFromGitHub, - setuptools, + aiohttp, azure-kusto-data, azure-storage-blob, azure-storage-queue, - tenacity, + buildPythonPackage, + fetchFromGitHub, pandas, + pytest-asyncio, + pytestCheckHook, + pythonOlder, + responses, + setuptools, + tenacity, }: buildPythonPackage rec { @@ -15,6 +20,8 @@ buildPythonPackage rec { version = "4.6.1"; pyproject = true; + disabled = pythonOlder "3.10"; + src = fetchFromGitHub { owner = "Azure"; repo = "azure-kusto-python"; @@ -22,7 +29,7 @@ buildPythonPackage rec { hash = "sha256-rm8G3/WAUlK1/80uk3uiTqDA5hUIr+VVZEmPe0mYBjI="; }; - sourceRoot = "${src.name}/azure-kusto-ingest"; + sourceRoot = "${src.name}/${pname}"; build-system = [ setuptools ]; @@ -37,16 +44,24 @@ buildPythonPackage rec { pandas = [ pandas ]; }; - # Tests require secret connection strings - # and a network connection. - doCheck = false; + nativeCheckInputs = [ + aiohttp + pytest-asyncio + pytestCheckHook + responses + ] ++ lib.flatten (builtins.attrValues optional-dependencies); pythonImportsCheck = [ "azure.kusto.ingest" ]; + disabledTestPaths = [ + # Tests require network access + "tests/test_e2e_ingest.py" + ]; + meta = { + description = "Module for Kusto Ingest"; + homepage = "https://github.com/Azure/azure-kusto-python/tree/master/azure-kusto-ingest"; changelog = "https://github.com/Azure/azure-kusto-python/releases/tag/v${version}"; - description = "Kusto Ingest Client"; - homepage = "https://github.com/Azure/azure-kusto-python"; license = lib.licenses.mit; maintainers = with lib.maintainers; [ pyrox0 ]; }; diff --git a/pkgs/development/python-modules/cache/default.nix b/pkgs/development/python-modules/cache/default.nix new file mode 100644 index 000000000000..678b394b5a67 --- /dev/null +++ b/pkgs/development/python-modules/cache/default.nix @@ -0,0 +1,40 @@ +{ + lib, + buildPythonPackage, + fetchFromGitHub, + setuptools, + pytestCheckHook, +}: + +buildPythonPackage rec { + pname = "cache"; + version = "1.0.3"; + pyproject = true; + + src = fetchFromGitHub { + owner = "jneen"; + repo = "python-cache"; + rev = "refs/tags/v${version}"; + hash = "sha256-vfVNo2B9fnjyjgR7cGrcsi9srWcTs3s8fhmvNF8okN0="; + }; + + build-system = [ setuptools ]; + + nativeCheckInputs = [ pytestCheckHook ]; + + pythonImportsCheck = [ "cache" ]; + + disabledTests = [ + # Tests are out-dated + "test_arguments" + "test_hash_arguments" + ]; + + meta = { + description = "Module for caching"; + homepage = "https://github.com/jneen/python-cache"; + changelog = "https://github.com/jneen/python-cache/releases/tag/v${version}"; + license = lib.licenses.mit; + maintainers = with lib.maintainers; [ fab ]; + }; +} diff --git a/pkgs/development/python-modules/msticpy/default.nix b/pkgs/development/python-modules/msticpy/default.nix new file mode 100644 index 000000000000..737a54b83f26 --- /dev/null +++ b/pkgs/development/python-modules/msticpy/default.nix @@ -0,0 +1,122 @@ +{ + lib, + attrs, + azure-common, + azure-core, + azure-identity, + azure-keyvault-secrets, + azure-kusto-data, + azure-mgmt-keyvault, + azure-mgmt-subscription, + azure-monitor-query, + beautifulsoup4, + bokeh, + buildPythonPackage, + cache, + cryptography, + deprecated, + dnspython, + fetchFromGitHub, + folium, + geoip2, + html5lib, + httpx, + importlib-resources, + ipython, + ipywidgets, + keyring, + lxml, + markdown, + msal-extensions, + msal, + msrest, + msrestazure, + nest-asyncio, + networkx, + packaging, + pandas, + pydantic, + pygments, + pyjwt, + pythonOlder, + pyyaml, + setuptools, + tldextract, + tqdm, + typing-extensions, + urllib3, +}: + +buildPythonPackage rec { + pname = "msticpy"; + version = "2.14.0"; + pyproject = true; + + disabled = pythonOlder "3.8"; + + src = fetchFromGitHub { + owner = "microsoft"; + repo = "msticpy"; + rev = "refs/tags/v${version}"; + hash = "sha256-9qTcXcgUxjSLbsWT7O9ilYuRRPPyN0v9NzUkbd4cIn0="; + }; + + pythonRelaxDeps = [ "bokeh" ]; + + build-system = [ setuptools ]; + + dependencies = [ + attrs + azure-common + azure-core + azure-identity + azure-keyvault-secrets + azure-kusto-data + azure-mgmt-keyvault + azure-mgmt-subscription + azure-monitor-query + beautifulsoup4 + bokeh + cryptography + deprecated + dnspython + folium + geoip2 + html5lib + httpx + importlib-resources + ipython + ipywidgets + keyring + lxml + msal + msal-extensions + msrest + msrestazure + nest-asyncio + networkx + packaging + pandas + pydantic + pygments + pyjwt + pyyaml + tldextract + tqdm + typing-extensions + urllib3 + ]; + + # Test requires network access + doCheck = false; + + pythonImportsCheck = [ "msticpy" ]; + + meta = { + description = "Microsoft Threat Intelligence Security Tools"; + homepage = "https://github.com/microsoft/msticpy"; + changelog = "https://github.com/microsoft/msticpy/releases/tag/v${version}"; + license = lib.licenses.mit; + maintainers = with lib.maintainers; [ fab ]; + }; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index b98b90954c29..a81e602d879e 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -1974,6 +1974,8 @@ self: super: with self; { bz2file = callPackage ../development/python-modules/bz2file { }; + cache = callPackage ../development/python-modules/cache { }; + cachecontrol = callPackage ../development/python-modules/cachecontrol { }; cached-ipaddress = callPackage ../development/python-modules/cached-ipaddress { }; @@ -8443,6 +8445,8 @@ self: super: with self; { mss = callPackage ../development/python-modules/mss { }; + msticpy = callPackage ../development/python-modules/msticpy { }; + msrestazure = callPackage ../development/python-modules/msrestazure { }; msrest = callPackage ../development/python-modules/msrest { };