greynoise 3.0.2__tar.gz → 3.1.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (84) hide show
  1. {greynoise-3.0.2 → greynoise-3.1.0}/.bumpversion.cfg +1 -1
  2. {greynoise-3.0.2 → greynoise-3.1.0}/.circleci/config.yml +1 -1
  3. {greynoise-3.0.2 → greynoise-3.1.0}/.gitignore +3 -0
  4. {greynoise-3.0.2 → greynoise-3.1.0}/.pre-commit-config.yaml +1 -0
  5. {greynoise-3.0.2 → greynoise-3.1.0}/CHANGELOG.rst +47 -1
  6. {greynoise-3.0.2 → greynoise-3.1.0}/PKG-INFO +22 -12
  7. {greynoise-3.0.2 → greynoise-3.1.0}/docs/source/conf.py +1 -1
  8. {greynoise-3.0.2 → greynoise-3.1.0}/docs/source/sample.py +1 -3
  9. {greynoise-3.0.2 → greynoise-3.1.0}/docs/source/tutorial.rst +20 -25
  10. {greynoise-3.0.2 → greynoise-3.1.0}/pyproject.toml +27 -13
  11. greynoise-3.1.0/requirements/common.txt +22 -0
  12. greynoise-3.1.0/requirements/dev.txt +11 -0
  13. greynoise-3.1.0/requirements/docs.txt +11 -0
  14. greynoise-3.1.0/requirements/test.txt +23 -0
  15. {greynoise-3.0.2 → greynoise-3.1.0}/reset_changelog.py +3 -4
  16. {greynoise-3.0.2 → greynoise-3.1.0}/setup.cfg +3 -3
  17. {greynoise-3.0.2 → greynoise-3.1.0}/src/greynoise/__init__.py +6 -0
  18. {greynoise-3.0.2 → greynoise-3.1.0}/src/greynoise/__version__.py +1 -1
  19. greynoise-3.1.0/src/greynoise/api/__init__.py +1648 -0
  20. {greynoise-3.0.2 → greynoise-3.1.0}/src/greynoise/api/filter.py +6 -12
  21. {greynoise-3.0.2 → greynoise-3.1.0}/src/greynoise/cli/__init__.py +8 -1
  22. {greynoise-3.0.2 → greynoise-3.1.0}/src/greynoise/cli/decorator.py +45 -86
  23. {greynoise-3.0.2 → greynoise-3.1.0}/src/greynoise/cli/formatter.py +62 -35
  24. {greynoise-3.0.2 → greynoise-3.1.0}/src/greynoise/cli/subcommand.py +288 -163
  25. greynoise-3.1.0/src/greynoise/cli/templates/callback_ip.txt.j2 +73 -0
  26. {greynoise-3.0.2 → greynoise-3.1.0}/src/greynoise/cli/templates/ip_context_result.txt.j2 +13 -1
  27. {greynoise-3.0.2 → greynoise-3.1.0}/src/greynoise/cli/templates/macros.txt.j2 +11 -0
  28. {greynoise-3.0.2 → greynoise-3.1.0}/src/greynoise/cli/templates/personadetails.txt.j2 +3 -1
  29. greynoise-3.1.0/src/greynoise/cli/templates/recall_stats.txt.j2 +63 -0
  30. greynoise-3.1.0/src/greynoise/cli/templates/recall_timeseries.txt.j2 +38 -0
  31. greynoise-3.1.0/src/greynoise/cli/templates/timelinedaily.txt.j2 +23 -0
  32. greynoise-3.1.0/src/greynoise/greynoise_timeline.py +510 -0
  33. greynoise-3.1.0/src/greynoise/psychic.py +1189 -0
  34. {greynoise-3.0.2 → greynoise-3.1.0}/src/greynoise/util.py +185 -31
  35. {greynoise-3.0.2 → greynoise-3.1.0}/tests/cli/test_formatter.py +16 -146
  36. {greynoise-3.0.2 → greynoise-3.1.0}/tests/cli/test_subcommand.py +239 -317
  37. {greynoise-3.0.2 → greynoise-3.1.0}/tests/test_api.py +102 -186
  38. greynoise-3.1.0/tests/test_psychic.py +272 -0
  39. {greynoise-3.0.2 → greynoise-3.1.0}/tests/test_util.py +170 -40
  40. greynoise-3.0.2/requirements/common.txt +0 -11
  41. greynoise-3.0.2/requirements/dev.txt +0 -5
  42. greynoise-3.0.2/requirements/docs.txt +0 -5
  43. greynoise-3.0.2/requirements/test.txt +0 -16
  44. greynoise-3.0.2/src/greynoise/api/__init__.py +0 -1085
  45. greynoise-3.0.2/src/greynoise/cli/templates/ip_community.txt.j2 +0 -16
  46. greynoise-3.0.2/src/greynoise/cli/templates/riot.txt.j2 +0 -32
  47. greynoise-3.0.2/src/greynoise/cli/templates/sensoractivity.txt.j2 +0 -25
  48. greynoise-3.0.2/src/greynoise/cli/templates/similarity.txt.j2 +0 -28
  49. greynoise-3.0.2/src/greynoise/cli/templates/timelinehourly.txt.j2 +0 -26
  50. {greynoise-3.0.2 → greynoise-3.1.0}/.dockerignore +0 -0
  51. {greynoise-3.0.2 → greynoise-3.1.0}/.editorconfig +0 -0
  52. {greynoise-3.0.2 → greynoise-3.1.0}/.github/CODEOWNERS +0 -0
  53. {greynoise-3.0.2 → greynoise-3.1.0}/.github/dependabot.yml +0 -0
  54. {greynoise-3.0.2 → greynoise-3.1.0}/.github/workflows/slack_release_notice.yml +0 -0
  55. {greynoise-3.0.2 → greynoise-3.1.0}/.readthedocs.yml +0 -0
  56. {greynoise-3.0.2 → greynoise-3.1.0}/.yamllint +0 -0
  57. {greynoise-3.0.2 → greynoise-3.1.0}/Dockerfile +0 -0
  58. {greynoise-3.0.2 → greynoise-3.1.0}/LICENSE +0 -0
  59. {greynoise-3.0.2 → greynoise-3.1.0}/MANIFEST.in +0 -0
  60. {greynoise-3.0.2 → greynoise-3.1.0}/Makefile +0 -0
  61. {greynoise-3.0.2 → greynoise-3.1.0}/README.rst +0 -0
  62. {greynoise-3.0.2 → greynoise-3.1.0}/docs/Makefile +0 -0
  63. {greynoise-3.0.2 → greynoise-3.1.0}/docs/source/changelog.rst +0 -0
  64. {greynoise-3.0.2 → greynoise-3.1.0}/docs/source/index.rst +0 -0
  65. {greynoise-3.0.2 → greynoise-3.1.0}/docs/source/introduction.rst +0 -0
  66. {greynoise-3.0.2 → greynoise-3.1.0}/docs/source/reference.rst +0 -0
  67. {greynoise-3.0.2 → greynoise-3.1.0}/pytest.ini +0 -0
  68. {greynoise-3.0.2 → greynoise-3.1.0}/release.md +0 -0
  69. {greynoise-3.0.2 → greynoise-3.1.0}/sonar-project.properties +0 -0
  70. {greynoise-3.0.2 → greynoise-3.1.0}/src/greynoise/cli/helper.py +0 -0
  71. {greynoise-3.0.2 → greynoise-3.1.0}/src/greynoise/cli/parameter.py +0 -0
  72. {greynoise-3.0.2 → greynoise-3.1.0}/src/greynoise/cli/templates/analyze.txt.j2 +0 -0
  73. {greynoise-3.0.2 → greynoise-3.1.0}/src/greynoise/cli/templates/cvedetails.txt.j2 +0 -0
  74. {greynoise-3.0.2 → greynoise-3.1.0}/src/greynoise/cli/templates/gnql_query.txt.j2 +0 -0
  75. {greynoise-3.0.2 → greynoise-3.1.0}/src/greynoise/cli/templates/gnql_stats.txt.j2 +0 -0
  76. {greynoise-3.0.2 → greynoise-3.1.0}/src/greynoise/cli/templates/ip_context.txt.j2 +0 -0
  77. {greynoise-3.0.2 → greynoise-3.1.0}/src/greynoise/cli/templates/ip_multi_context.txt.j2 +0 -0
  78. {greynoise-3.0.2 → greynoise-3.1.0}/src/greynoise/cli/templates/ip_quick_check.txt.j2 +0 -0
  79. {greynoise-3.0.2 → greynoise-3.1.0}/src/greynoise/cli/templates/sensorlist.txt.j2 +0 -0
  80. {greynoise-3.0.2 → greynoise-3.1.0}/src/greynoise/cli/templates/stats.txt.j2 +0 -0
  81. {greynoise-3.0.2 → greynoise-3.1.0}/src/greynoise/cli/templates/timeline.txt.j2 +0 -0
  82. {greynoise-3.0.2 → greynoise-3.1.0}/src/greynoise/exceptions.py +0 -0
  83. {greynoise-3.0.2 → greynoise-3.1.0}/tests/cli/test_init.py +0 -0
  84. {greynoise-3.0.2 → greynoise-3.1.0}/tox.ini +0 -0
@@ -1,5 +1,5 @@
1
1
  [bumpversion]
2
- current_version = 3.0.2
2
+ current_version = 3.1.0
3
3
  tag = False
4
4
  commit = False
5
5
 
@@ -68,7 +68,7 @@ jobs:
68
68
  command: yamllint .
69
69
  - run:
70
70
  name: Style check (black)
71
- command: black --check src tests docs
71
+ command: black --check --target-version py310 src tests docs
72
72
  - run:
73
73
  name: Style check (isort)
74
74
  command: isort --check-only src/**/*.py tests/**/*.py docs/**/*.py
@@ -89,6 +89,7 @@ celerybeat-schedule
89
89
  venv/
90
90
  venv_py2/
91
91
  venv3/
92
+ venv312/
92
93
  ENV/
93
94
  bin/
94
95
  pyvenv.cfg
@@ -111,3 +112,5 @@ pyvenv.cfg
111
112
  workspace/
112
113
 
113
114
  .DS_Store
115
+ .vscode/
116
+ scratch.py
@@ -14,6 +14,7 @@ repos:
14
14
  language: system
15
15
  types:
16
16
  - python
17
+ args: [--target-version, py310]
17
18
  - id: isort
18
19
  name: Style check (isort)
19
20
  entry: isort
@@ -2,6 +2,50 @@
2
2
  Changelog
3
3
  =========
4
4
 
5
+ Version `3.1.0`_
6
+ ================
7
+ **Date**: unreleased
8
+
9
+ * API client:
10
+
11
+ * Added `psychic_lookup`, `psychic_lookup_ips`, `psychic_stats` functions to support Psychic API endpoints
12
+ * Added `psychic_download_mmdb`, `psychic_download_bin`, `psychic_download_csv`, `psychic_generate_bitmap` functions to support Psychic file downloads
13
+ * Added `cves` function to support bulk CVE lookup API endpoints
14
+ * Added `callback_ip`, `callback_list`, `callback_export_ips`, `callback_overview` functions to support Callback API endpoints
15
+ * Added `recall`, `recall_stats`, `recall_timeseries` functions to support Recall API endpoints
16
+ * Updated the `timeline` and `timelinehourly` function
17
+ * Updated the `filter` function to correctly handle v3 API response format
18
+ * The `tags` function is now used instead of `metadata`, but is still available for backwards compatibility.
19
+ * The `similar` function is deprecated and will be removed in a future version.
20
+ * The `sensor_activity` and `sensor_activity_ips` functions are deprecated and will be removed in a future version.
21
+ * The `timelinehourly` function is deprecated and will be removed in a future version.
22
+
23
+ * CLI:
24
+ * Added `psychic-download` and `psychic-generate` commands to support Psychic file downloads
25
+ * Updated `ip` command to support Psychic API endpoints with new `-p/--psychic` option
26
+ * Added `callback` commands to support Callback API endpoints
27
+ * Added `recall` commands to support Recall API endpoints
28
+ * Removed `sensor-activity` command as it is deprecated and will be removed in a future version.
29
+ * Removed `timelinehourly` command as it is deprecated and will be removed in a future version.
30
+ * Removed not implemented commands `alerts`, `account`, `feedback`, `signature`, `interesting`.
31
+
32
+ * Dependencies:
33
+ * Updated `requests` to version 2.34.2
34
+ * Updated `more-itertools` to version 11.1.0
35
+ * Updated `cachetools` to version 7.0.5
36
+ * Updated `Click` to version 8.3.1
37
+ * Updated `ansimarkup` to version 2.2.0
38
+ * Updated `dict2xml` to version 1.7.8
39
+ * Added `maxminddb` to version 3.1.1
40
+
41
+ Version `3.0.3`_
42
+ ================
43
+ **Date**: May 15, 2026
44
+
45
+ * API client:
46
+ * Add `exclude_fields` parameter to `query` command
47
+ * Update `stats` to use v3 endpoint
48
+
5
49
  Version `3.0.2`_
6
50
  ================
7
51
  **Date**: March 10, 2026
@@ -483,4 +527,6 @@ Version `0.2.0`_
483
527
  .. _`2.3.0`: https://github.com/GreyNoise-Intelligence/pygreynoise/compare/v2.2.0...2.3.0
484
528
  .. _`3.0.0`: https://github.com/GreyNoise-Intelligence/pygreynoise/compare/v2.3.0...v3.0.0
485
529
  .. _`3.0.1`: https://github.com/GreyNoise-Intelligence/pygreynoise/compare/v3.0.0...v3.0.1
486
- .. _`3.0.2`: https://github.com/GreyNoise-Intelligence/pygreynoise/compare/v3.0.1...HEAD
530
+ .. _`3.0.2`: https://github.com/GreyNoise-Intelligence/pygreynoise/compare/v3.0.1...v3.0.2
531
+ .. _`3.0.3`: https://github.com/GreyNoise-Intelligence/pygreynoise/compare/v3.0.2...v3.0.3
532
+ .. _`3.1.0`: https://github.com/GreyNoise-Intelligence/pygreynoise/compare/v3.0.3...HEAD
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: greynoise
3
- Version: 3.0.2
3
+ Version: 3.1.0
4
4
  Summary: Abstraction to interact with GreyNoise API.
5
5
  Project-URL: Homepage, https://greynoise.io/
6
6
  Project-URL: Repository, https://github.com/GreyNoise-Intelligence/pygreynoise
@@ -22,17 +22,27 @@ Classifier: Programming Language :: Python :: 3.11
22
22
  Classifier: Programming Language :: Python :: 3.12
23
23
  Classifier: Topic :: Software Development :: Libraries
24
24
  Requires-Python: >=3.8
25
- Requires-Dist: ansimarkup
26
- Requires-Dist: cachetools
27
- Requires-Dist: click-default-group
28
- Requires-Dist: click-repl
29
- Requires-Dist: click<=8.1.8
30
- Requires-Dist: colorama
31
- Requires-Dist: dict2xml
32
- Requires-Dist: jinja2
33
- Requires-Dist: more-itertools>=8.14.0
34
- Requires-Dist: requests
35
- Requires-Dist: six
25
+ Requires-Dist: ansimarkup==2.2.0
26
+ Requires-Dist: cachetools==5.5.2; python_version == '3.8'
27
+ Requires-Dist: cachetools==6.2.6; python_version == '3.9'
28
+ Requires-Dist: cachetools==7.0.5; python_version >= '3.10'
29
+ Requires-Dist: click-default-group==1.2.4
30
+ Requires-Dist: click-repl==0.3.0
31
+ Requires-Dist: click<=8.1.8; python_version < '3.10'
32
+ Requires-Dist: click==8.4.1; python_version >= '3.10'
33
+ Requires-Dist: colorama==0.4.6
34
+ Requires-Dist: dict2xml==1.7.8
35
+ Requires-Dist: jinja2==3.1.6
36
+ Requires-Dist: maxminddb==2.6.3; python_version == '3.8'
37
+ Requires-Dist: maxminddb==2.8.2; python_version == '3.9'
38
+ Requires-Dist: maxminddb==3.1.1; python_version >= '3.10'
39
+ Requires-Dist: more-itertools==10.5.0; python_version == '3.8'
40
+ Requires-Dist: more-itertools==10.8.0; python_version == '3.9'
41
+ Requires-Dist: more-itertools==11.1.0; python_version >= '3.10'
42
+ Requires-Dist: requests==2.32.4; python_version == '3.8'
43
+ Requires-Dist: requests==2.32.5; python_version == '3.9'
44
+ Requires-Dist: requests==2.34.2; python_version >= '3.10'
45
+ Requires-Dist: six==1.17.0
36
46
  Description-Content-Type: text/x-rst
37
47
 
38
48
  ================
@@ -25,7 +25,7 @@ copyright = "2018-2025, GreyNoise Intelligence"
25
25
  author = "GreyNoise Intelligence"
26
26
 
27
27
  # The full version, including alpha/beta/rc tags
28
- release = "3.0.2"
28
+ release = "3.1.0"
29
29
 
30
30
 
31
31
  # -- General configuration ---------------------------------------------------
@@ -2,9 +2,7 @@ from greynoise.api import APIConfig, GreyNoise
2
2
 
3
3
  api_key = "<enter-api-key-here>"
4
4
  ip_addresses = ["108.168.3.151", "8.8.8.8", "318.1.1.1"]
5
- api_config = APIConfig(
6
- api_key=api_key, integration_name="greynoise-sampleapp-v1.0.0-beta"
7
- )
5
+ api_config = APIConfig(api_key=api_key, integration_name="greynoise-sampleapp-v1.0.0-beta")
8
6
  api_client = GreyNoise(api_config)
9
7
 
10
8
  for ip_address in ip_addresses:
@@ -752,36 +752,31 @@ subcommands, use the *--help* option::
752
752
  $ greynoise -h
753
753
  Usage: greynoise [OPTIONS] COMMAND [ARGS]...
754
754
 
755
- GreyNoise CLI.
755
+ GreyNoise CLI.
756
756
 
757
757
  Options:
758
758
  -h, --help Show this message and exit.
759
759
 
760
760
  Commands:
761
- account View information about your GreyNoise account.
762
- alerts List, create, delete, and manage your GreyNoise alerts.
763
- analyze Analyze the IP addresses in a log file, stdin, etc.
764
- cve Retrieve Details of a CVE.
765
- feedback Send feedback directly to the GreyNoise team.
766
- filter Filter the noise from a log file, stdin, etc.
767
- help Show this message and exit.
768
- ip Query GreyNoise for all information on a given IP.
769
- ip-multi Perform Context lookup for multiple IPs at once.
770
- persona-details Retrieve Details of a Sensor Persona.
771
- query Run a GNQL (GreyNoise Query Language) query.
772
- quick Quickly check whether or not one or many IPs are "noise".
773
- repl Start an interactive shell.
774
- riot Query GreyNoise IP to see if it is in the RIOT dataset.
775
- sensor-activity Retrieve Sensor Activity.
776
- sensor-list Retrieve list of current Sensors in Workspace.
777
- setup Configure API client.
778
- signature Submit an IDS signature to GreyNoise to be deployed to...
779
- similar Query GreyNoise IP to identify Similar IPs.
780
- stats Get aggregate stats from a given GNQL query.
781
- timeline Query GreyNoise IP Timeline for events based on a...
782
- timelinedaily Query GreyNoise IP Timeline to get daily event details.
783
- timelinehourly Query GreyNoise IP Timeline to get hourly event details.
784
- version Get version and OS information for your GreyNoise...
761
+ analyze Analyze the IP addresses in a log file, stdin, etc.
762
+ callback GreyNoise Callback scanner callback intelligence...
763
+ cve Retrieve Details of a CVE.
764
+ filter Filter the noise from a log file, stdin, etc.
765
+ help Show this message and exit.
766
+ ip Query GreyNoise for all information on a given IP.
767
+ ip-multi Perform Context lookup for multiple IPs at once.
768
+ persona-details Retrieve Details of a Sensor Persona.
769
+ psychic-download Download a Psychic bitmap (.bin), MMDB, or CSV file...
770
+ query Run a GNQL (GreyNoise Query Language) query.
771
+ quick Quickly check whether or not one or many IPs are...
772
+ recall GreyNoise Recall GNQL activity over time.
773
+ repl Start an interactive shell.
774
+ sensor-list Retrieve list of current Sensors in Workspace.
775
+ setup Configure API client.
776
+ stats Get aggregate stats from a given GNQL query.
777
+ timeline Query GreyNoise IP Timeline for events based on a...
778
+ timelinedaily Query GreyNoise IP Timeline to get daily event details.
779
+ version Get version and OS information for your GreyNoise...
785
780
 
786
781
 
787
782
  Setup
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "greynoise"
7
- version = "3.0.2"
7
+ version = "3.1.0"
8
8
  description = "Abstraction to interact with GreyNoise API."
9
9
  readme = {file = "README.rst", content-type = "text/x-rst"}
10
10
  requires-python = ">=3.8"
@@ -28,17 +28,27 @@ classifiers = [
28
28
  ]
29
29
  keywords = ["internet", "scanning", "threat intelligence", "security"]
30
30
  dependencies = [
31
- "Click<=8.1.8",
32
- "ansimarkup",
33
- "cachetools",
34
- "colorama",
35
- "click-default-group",
36
- "click-repl",
37
- "dict2xml",
38
- "jinja2",
39
- "more-itertools>=8.14.0",
40
- "requests",
41
- "six",
31
+ "Click<=8.1.8; python_version < '3.10'",
32
+ "Click==8.4.1; python_version >= '3.10'",
33
+ "ansimarkup==2.2.0",
34
+ "cachetools==5.5.2; python_version == '3.8'",
35
+ "cachetools==6.2.6; python_version == '3.9'",
36
+ "cachetools==7.0.5; python_version >= '3.10'",
37
+ "colorama==0.4.6",
38
+ "click-default-group==1.2.4",
39
+ "click-repl==0.3.0",
40
+ "dict2xml==1.7.8",
41
+ "jinja2==3.1.6",
42
+ "maxminddb==2.6.3; python_version == '3.8'",
43
+ "maxminddb==2.8.2; python_version == '3.9'",
44
+ "maxminddb==3.1.1; python_version >= '3.10'",
45
+ "more-itertools==10.5.0; python_version == '3.8'",
46
+ "more-itertools==10.8.0; python_version == '3.9'",
47
+ "more-itertools==11.1.0; python_version >= '3.10'",
48
+ "requests==2.32.4; python_version == '3.8'",
49
+ "requests==2.32.5; python_version == '3.9'",
50
+ "requests==2.34.2; python_version >= '3.10'",
51
+ "six==1.17.0",
42
52
  ]
43
53
 
44
54
  [project.urls]
@@ -53,4 +63,8 @@ greynoise = "greynoise.cli:main"
53
63
  packages = ["src/greynoise"]
54
64
 
55
65
  [tool.hatch.build.targets.wheel.shared-data]
56
- "src/greynoise/cli/templates/*.j2" = "greynoise/cli/templates"
66
+ "src/greynoise/cli/templates/*.j2" = "greynoise/cli/templates"
67
+
68
+ [tool.black]
69
+ line-length = 120
70
+ target-version = ["py310"]
@@ -0,0 +1,22 @@
1
+ Click<=8.1.8;python_version=="3.8"
2
+ Click<=8.1.8;python_version=="3.9"
3
+ Click==8.4.1;python_version>="3.10"
4
+ ansimarkup==2.2.0
5
+ cachetools==5.5.2;python_version=="3.8"
6
+ cachetools==6.2.6;python_version=="3.9"
7
+ cachetools==7.0.5;python_version>="3.10"
8
+ colorama==0.4.6
9
+ click-default-group==1.2.4
10
+ click-repl==0.3.0
11
+ dict2xml==1.7.8;python_version>='3'
12
+ jinja2==3.1.6
13
+ maxminddb==2.6.3;python_version=="3.8"
14
+ maxminddb==2.8.2;python_version=="3.9"
15
+ maxminddb==3.1.1;python_version>="3.10"
16
+ more-itertools==10.5.0;python_version=="3.8"
17
+ more-itertools==10.8.0;python_version=="3.9"
18
+ more-itertools==11.1.0;python_version>="3.10"
19
+ requests==2.32.4;python_version=="3.8"
20
+ requests==2.32.5;python_version=="3.9"
21
+ requests==2.34.2;python_version>="3.10"
22
+ six==1.17.0
@@ -0,0 +1,11 @@
1
+ # Requirements needed to develop the application
2
+ -r test.txt
3
+ advbumpversion==1.2.0
4
+ ipython==8.13.0;python_version=="3.8"
5
+ ipython==8.18.1;python_version=="3.9"
6
+ ipython==8.38.0;python_version=="3.10"
7
+ ipython==9.10.0;python_version=="3.11"
8
+ ipython==9.12.0;python_version>="3.12"
9
+ tox==4.25.0;python_version=="3.8"
10
+ tox==4.30.3;python_version=="3.9"
11
+ tox==4.52.0;python_version>="3.10"
@@ -0,0 +1,11 @@
1
+ # Requirements needed to build the documentation
2
+ -r common.txt
3
+ Sphinx==7.1.2;python_version=="3.8"
4
+ Sphinx==7.4.7;python_version=="3.9"
5
+ Sphinx==8.1.3;python_version=="3.10"
6
+ Sphinx==9.0.4;python_version=="3.11"
7
+ Sphinx==9.1.0;python_version>="3.12"
8
+ sphinx-click==6.0.0;python_version=="3.8"
9
+ sphinx-click==6.0.0;python_version=="3.9"
10
+ sphinx-click==6.2.0;python_version>="3.10"
11
+ sphinx-rtd-theme==3.1.0
@@ -0,0 +1,23 @@
1
+ black==24.8.0;python_version=="3.8"
2
+ black==25.11.0;python_version=="3.9"
3
+ black==26.3.1;python_version>="3.10"
4
+ flake8==7.1.2;python_version=="3.8"
5
+ flake8==7.3.0;python_version>="3.9"
6
+ isort==5.13.2;python_version=="3.8"
7
+ isort==6.1.0;python_version=="3.9"
8
+ isort==8.0.1;python_version>="3.10"
9
+ mock==5.2.0
10
+ pylint==3.2.7;python_version=="3.8"
11
+ pylint==3.3.9;python_version=="3.9"
12
+ pylint==4.0.5;python_version>="3.10"
13
+ pytest-cov==5.0.0;python_version=="3.8"
14
+ pytest-cov==7.1.0;python_version>="3.9"
15
+ pytest==8.3.5;python_version=="3.8"
16
+ pytest==8.4.2;python_version=="3.9"
17
+ pytest==9.0.3;python_version>="3.10"
18
+ restructuredtext-lint==2.0.2
19
+ twine==6.1.0;python_version=="3.8"
20
+ twine==6.2.0;python_version>="3.9"
21
+ yamllint==1.35.1;python_version=="3.8"
22
+ yamllint==1.37.1;python_version=="3.9"
23
+ yamllint==1.38.0;python_version>="3.10"
@@ -43,10 +43,9 @@ if not match:
43
43
  )
44
44
  f.seek(0)
45
45
  f.write(text)
46
- LINK_STRING = (
47
- ".. _`dev`: https://github.com/GreyNoise-Intelligence/pygreynoise/"
48
- "compare/v{}...HEAD"
49
- ).format(ver)
46
+ LINK_STRING = (".. _`dev`: https://github.com/GreyNoise-Intelligence/pygreynoise/" "compare/v{}...HEAD").format(
47
+ ver
48
+ )
50
49
  f.write(LINK_STRING)
51
50
  f.truncate()
52
51
  else:
@@ -1,13 +1,13 @@
1
1
  [flake8]
2
- max-line-length = 88
2
+ max-line-length = 120
3
3
  max-complexity = 10
4
- ignore = C901,W503
4
+ ignore = C901,W503,E203
5
5
 
6
6
  [isort]
7
7
  multi_line_output = 3
8
8
  include_trailing_comma = True
9
9
  use_parentheses = True
10
- line_length = 88
10
+ line_length = 120
11
11
 
12
12
  [tool:pytest]
13
13
  addopts = --pdbcls=IPython.terminal.debugger:TerminalPdb
@@ -10,4 +10,10 @@ from greynoise.__version__ import ( # noqa
10
10
  __status__,
11
11
  __version__,
12
12
  )
13
+
14
+ USER_AGENT = "GreyNoise/{}".format(__version__)
15
+ PSYCHIC_USER_AGENT = "{} (psychic)".format(USER_AGENT)
16
+
13
17
  from greynoise.api import GreyNoise # noqa
18
+ from greynoise.greynoise_timeline import get_greynoise_timeline # noqa
19
+ from greynoise.psychic import Psychic # noqa
@@ -5,4 +5,4 @@ __license__ = "MIT"
5
5
  __maintainer__ = "GreyNoise Intelligence"
6
6
  __email__ = "support@greynoise.io"
7
7
  __status__ = "BETA"
8
- __version__ = "3.0.2"
8
+ __version__ = "3.1.0"