traffic-taffy 0.9.5__tar.gz → 0.9.6__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 (59) hide show
  1. {traffic_taffy-0.9.5 → traffic_taffy-0.9.6}/PKG-INFO +3 -2
  2. {traffic_taffy-0.9.5 → traffic_taffy-0.9.6}/pyproject.toml +10 -2
  3. traffic_taffy-0.9.6/traffic_taffy/__init__.py +1 -0
  4. {traffic_taffy-0.9.5 → traffic_taffy-0.9.6}/traffic_taffy/dissection.py +0 -12
  5. {traffic_taffy-0.9.5 → traffic_taffy-0.9.6}/traffic_taffy/dissector_engine/scapy.py +2 -0
  6. traffic_taffy-0.9.5/traffic_taffy/__init__.py +0 -1
  7. traffic_taffy-0.9.5/traffic_taffy/report.py +0 -12
  8. traffic_taffy-0.9.5/traffic_taffy/tests/test_dpkt_engine.py +0 -15
  9. {traffic_taffy-0.9.5 → traffic_taffy-0.9.6}/.gitignore +0 -0
  10. {traffic_taffy-0.9.5 → traffic_taffy-0.9.6}/LICENSE.txt +0 -0
  11. {traffic_taffy-0.9.5 → traffic_taffy-0.9.6}/README.md +0 -0
  12. {traffic_taffy-0.9.5 → traffic_taffy-0.9.6}/traffic_taffy/algorithms/__init__.py +0 -0
  13. {traffic_taffy-0.9.5 → traffic_taffy-0.9.6}/traffic_taffy/algorithms/comparecorrelation.py +0 -0
  14. {traffic_taffy-0.9.5 → traffic_taffy-0.9.6}/traffic_taffy/algorithms/comparecorrelationchanges.py +0 -0
  15. {traffic_taffy-0.9.5 → traffic_taffy-0.9.6}/traffic_taffy/algorithms/compareseries.py +0 -0
  16. {traffic_taffy-0.9.5 → traffic_taffy-0.9.6}/traffic_taffy/algorithms/compareslices.py +0 -0
  17. {traffic_taffy-0.9.5 → traffic_taffy-0.9.6}/traffic_taffy/algorithms/statistical.py +0 -0
  18. {traffic_taffy-0.9.5 → traffic_taffy-0.9.6}/traffic_taffy/compare.py +0 -0
  19. {traffic_taffy-0.9.5 → traffic_taffy-0.9.6}/traffic_taffy/comparison.py +0 -0
  20. {traffic_taffy-0.9.5 → traffic_taffy-0.9.6}/traffic_taffy/config.py +0 -0
  21. {traffic_taffy-0.9.5 → traffic_taffy-0.9.6}/traffic_taffy/dissectmany.py +0 -0
  22. {traffic_taffy-0.9.5 → traffic_taffy-0.9.6}/traffic_taffy/dissector.py +0 -0
  23. {traffic_taffy-0.9.5 → traffic_taffy-0.9.6}/traffic_taffy/dissector_engine/__init__.py +0 -0
  24. {traffic_taffy-0.9.5 → traffic_taffy-0.9.6}/traffic_taffy/dissector_engine/dnstap.py +0 -0
  25. {traffic_taffy-0.9.5 → traffic_taffy-0.9.6}/traffic_taffy/dissector_engine/dpkt.py +0 -0
  26. {traffic_taffy-0.9.5 → traffic_taffy-0.9.6}/traffic_taffy/graph.py +0 -0
  27. {traffic_taffy-0.9.5 → traffic_taffy-0.9.6}/traffic_taffy/graphdata.py +0 -0
  28. {traffic_taffy-0.9.5 → traffic_taffy-0.9.6}/traffic_taffy/hooks/__init__.py +0 -0
  29. {traffic_taffy-0.9.5 → traffic_taffy-0.9.6}/traffic_taffy/hooks/ip2asn.py +0 -0
  30. {traffic_taffy-0.9.5 → traffic_taffy-0.9.6}/traffic_taffy/hooks/labels.py +0 -0
  31. {traffic_taffy-0.9.5 → traffic_taffy-0.9.6}/traffic_taffy/hooks/psl.py +0 -0
  32. {traffic_taffy-0.9.5 → traffic_taffy-0.9.6}/traffic_taffy/iana/tables.msgpak +0 -0
  33. {traffic_taffy-0.9.5 → traffic_taffy-0.9.6}/traffic_taffy/output/__init__.py +0 -0
  34. {traffic_taffy-0.9.5 → traffic_taffy-0.9.6}/traffic_taffy/output/console.py +0 -0
  35. {traffic_taffy-0.9.5 → traffic_taffy-0.9.6}/traffic_taffy/output/fsdb.py +0 -0
  36. {traffic_taffy-0.9.5 → traffic_taffy-0.9.6}/traffic_taffy/output/memory.py +0 -0
  37. {traffic_taffy-0.9.5 → traffic_taffy-0.9.6}/traffic_taffy/reports/__init__.py +0 -0
  38. {traffic_taffy-0.9.5 → traffic_taffy-0.9.6}/traffic_taffy/reports/compareslicesreport.py +0 -0
  39. {traffic_taffy-0.9.5 → traffic_taffy-0.9.6}/traffic_taffy/reports/correlationchangereport.py +0 -0
  40. {traffic_taffy-0.9.5 → traffic_taffy-0.9.6}/traffic_taffy/reports/correlationreport.py +0 -0
  41. {traffic_taffy-0.9.5 → traffic_taffy-0.9.6}/traffic_taffy/taffy_config.py +0 -0
  42. {traffic_taffy-0.9.5 → traffic_taffy-0.9.6}/traffic_taffy/tests/test_compare_results.py +0 -0
  43. {traffic_taffy-0.9.5 → traffic_taffy-0.9.6}/traffic_taffy/tests/test_config.py +0 -0
  44. {traffic_taffy-0.9.5 → traffic_taffy-0.9.6}/traffic_taffy/tests/test_dict_merge.py +0 -0
  45. {traffic_taffy-0.9.5 → traffic_taffy-0.9.6}/traffic_taffy/tests/test_global_config.py +0 -0
  46. {traffic_taffy-0.9.5 → traffic_taffy-0.9.6}/traffic_taffy/tests/test_hooks.py +0 -0
  47. {traffic_taffy-0.9.5 → traffic_taffy-0.9.6}/traffic_taffy/tests/test_normalize.py +0 -0
  48. {traffic_taffy-0.9.5 → traffic_taffy-0.9.6}/traffic_taffy/tests/test_pcap_dissector.py +0 -0
  49. {traffic_taffy-0.9.5 → traffic_taffy-0.9.6}/traffic_taffy/tests/test_pcap_splitter.py +0 -0
  50. {traffic_taffy-0.9.5 → traffic_taffy-0.9.6}/traffic_taffy/tests/test_splitter.py +0 -0
  51. {traffic_taffy-0.9.5 → traffic_taffy-0.9.6}/traffic_taffy/tests/test_value_printing.py +0 -0
  52. {traffic_taffy-0.9.5 → traffic_taffy-0.9.6}/traffic_taffy/tools/__init__.py +0 -0
  53. {traffic_taffy-0.9.5 → traffic_taffy-0.9.6}/traffic_taffy/tools/cache_info.py +0 -0
  54. {traffic_taffy-0.9.5 → traffic_taffy-0.9.6}/traffic_taffy/tools/compare.py +0 -0
  55. {traffic_taffy-0.9.5 → traffic_taffy-0.9.6}/traffic_taffy/tools/config.py +0 -0
  56. {traffic_taffy-0.9.5 → traffic_taffy-0.9.6}/traffic_taffy/tools/dissect.py +0 -0
  57. {traffic_taffy-0.9.5 → traffic_taffy-0.9.6}/traffic_taffy/tools/explore.py +0 -0
  58. {traffic_taffy-0.9.5 → traffic_taffy-0.9.6}/traffic_taffy/tools/export.py +0 -0
  59. {traffic_taffy-0.9.5 → traffic_taffy-0.9.6}/traffic_taffy/tools/graph.py +0 -0
@@ -1,10 +1,11 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.4
2
2
  Name: traffic-taffy
3
- Version: 0.9.5
3
+ Version: 0.9.6
4
4
  Summary: A tool for doing differential analysis of pcap files
5
5
  Project-URL: Homepage, https://traffic-taffy.github.io/
6
6
  Author-email: Wes Hardaker <opensource@hardakers.net>
7
7
  License-File: LICENSE.txt
8
+ Classifier: License :: OSI Approved :: Apache Software License
8
9
  Classifier: Operating System :: OS Independent
9
10
  Classifier: Programming Language :: Python :: 3
10
11
  Requires-Python: >=3.7
@@ -1,5 +1,5 @@
1
1
  [build-system]
2
- requires = ["hatchling"]
2
+ requires = ["hatchling>=1.26.1"]
3
3
  build-backend = "hatchling.build"
4
4
 
5
5
  [project]
@@ -7,7 +7,10 @@ name = "traffic-taffy"
7
7
  dynamic = ["version"]
8
8
  description = "A tool for doing differential analysis of pcap files"
9
9
  readme = "README.md"
10
- license = ""
10
+ # license = "Apache License, Version 2.0"
11
+ # license = { file = "LICENSE.txt" }
12
+ # license-expression = "Apache 2.0"
13
+ # license-file = "LICENSE.txt"
11
14
  requires-python = ">=3.7"
12
15
  authors = [
13
16
  { name = "Wes Hardaker", email = "opensource@hardakers.net" },
@@ -15,6 +18,7 @@ authors = [
15
18
  classifiers = [
16
19
  "Operating System :: OS Independent",
17
20
  "Programming Language :: Python :: 3",
21
+ "License :: OSI Approved :: Apache Software License",
18
22
  ]
19
23
  dependencies = [
20
24
  "dpkt",
@@ -35,6 +39,10 @@ dependencies = [
35
39
  "argparse-with-config>=0.1.4",
36
40
  ]
37
41
 
42
+ # [project.metadata]
43
+ # license-expression = "Apache 2.0"
44
+ # license-file = "LICENSE.txt"
45
+
38
46
  [project.package_data]
39
47
  "traffic_taffy.iana" = ['tables.msgpak']
40
48
 
@@ -0,0 +1 @@
1
+ __VERSION__ = "0.9.6"
@@ -134,8 +134,6 @@ class Dissection:
134
134
  # note: there should be no recorded tcpdump files from 1970 Jan 01 :-)
135
135
  self.data[0][key][value] += count
136
136
  if self.timestamp:
137
- if self.timestamp not in self.data:
138
- self.data[self.timestamp] = defaultdict(Counter)
139
137
  self.data[self.timestamp][key][value] += count
140
138
 
141
139
  def calculate_metadata(self: Dissection) -> None:
@@ -159,16 +157,6 @@ class Dissection:
159
157
  for timestamp in other_dissection.data:
160
158
  for key in other_dissection.data[timestamp]:
161
159
  for subkey in other_dissection.data[timestamp][key]:
162
- # TODO(hardaker): this is horribly inefficient
163
- if timestamp not in self.data:
164
- self.data[timestamp] = defaultdict(Counter)
165
- elif key not in self.data[timestamp]:
166
- self.data[timestamp][key] = Counter()
167
- elif (
168
- isinstance(self.data[timestamp][key], dict)
169
- and subkey not in self.data[timestamp][key]
170
- ):
171
- self.data[timestamp][key][subkey] = 0
172
160
  self.data[timestamp][key][subkey] += other_dissection.data[
173
161
  timestamp
174
162
  ][key][subkey]
@@ -113,6 +113,8 @@ class DissectionEngineScapy(DissectionEngine):
113
113
 
114
114
  try:
115
115
  field_value = getattr(layer, field_name)
116
+ if not field_value: ## can return empty field values like []
117
+ continue
116
118
  if hasattr(field_value, "fields"):
117
119
  self.add_layer(field_value, new_prefix + "_")
118
120
  else:
@@ -1 +0,0 @@
1
- __VERSION__ = "0.9.5"
@@ -1,12 +0,0 @@
1
- from dataclasses import dataclass
2
-
3
-
4
- @dataclass
5
- class Report:
6
- delta_percentage: float
7
- delta_absolute: int
8
- total: int
9
- left_count: int
10
- right_count: int
11
- left_percentage: float
12
- right_percentage: float
@@ -1,15 +0,0 @@
1
- import os
2
- from traffic_taffy.dissection import PCAPDissectorLevel
3
- from traffic_taffy.dissector_engine.dpkt import DissectionEngineDpkt
4
-
5
- def test_dpkt_engine():
6
- test_pcap = "dns.pcap"
7
- test_pcap = "port53-2023-30-31_20.pcap"
8
- test_pcap = "airplane-wireless.pcap"
9
- if not os.path.exists(test_pcap):
10
- return
11
-
12
- engine = DissectionEngineDpkt(test_pcap,
13
- dissector_level = PCAPDissectorLevel.COMMON_LAYERS)
14
- dissection = engine.load()
15
-
File without changes
File without changes
File without changes