flow.record 3.22.dev1__tar.gz → 3.22.dev2__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.
- {flow_record-3.22.dev1 → flow_record-3.22.dev2}/PKG-INFO +1 -1
- {flow_record-3.22.dev1 → flow_record-3.22.dev2}/flow/record/fieldtypes/__init__.py +9 -0
- {flow_record-3.22.dev1 → flow_record-3.22.dev2}/flow/record/version.py +3 -3
- {flow_record-3.22.dev1 → flow_record-3.22.dev2}/flow.record.egg-info/PKG-INFO +1 -1
- {flow_record-3.22.dev1 → flow_record-3.22.dev2}/tests/fieldtypes/test_fieldtypes.py +8 -2
- {flow_record-3.22.dev1 → flow_record-3.22.dev2}/.git-blame-ignore-revs +0 -0
- {flow_record-3.22.dev1 → flow_record-3.22.dev2}/.gitattributes +0 -0
- {flow_record-3.22.dev1 → flow_record-3.22.dev2}/COPYRIGHT +0 -0
- {flow_record-3.22.dev1 → flow_record-3.22.dev2}/LICENSE +0 -0
- {flow_record-3.22.dev1 → flow_record-3.22.dev2}/MANIFEST.in +0 -0
- {flow_record-3.22.dev1 → flow_record-3.22.dev2}/README.md +0 -0
- {flow_record-3.22.dev1 → flow_record-3.22.dev2}/examples/__init__.py +0 -0
- {flow_record-3.22.dev1 → flow_record-3.22.dev2}/examples/filesystem.py +0 -0
- {flow_record-3.22.dev1 → flow_record-3.22.dev2}/examples/passivedns.py +0 -0
- {flow_record-3.22.dev1 → flow_record-3.22.dev2}/examples/records.json +0 -0
- {flow_record-3.22.dev1 → flow_record-3.22.dev2}/examples/selectors.py +0 -0
- {flow_record-3.22.dev1 → flow_record-3.22.dev2}/examples/tcpconn.py +0 -0
- {flow_record-3.22.dev1 → flow_record-3.22.dev2}/flow/record/__init__.py +0 -0
- {flow_record-3.22.dev1 → flow_record-3.22.dev2}/flow/record/adapter/__init__.py +0 -0
- {flow_record-3.22.dev1 → flow_record-3.22.dev2}/flow/record/adapter/archive.py +0 -0
- {flow_record-3.22.dev1 → flow_record-3.22.dev2}/flow/record/adapter/avro.py +0 -0
- {flow_record-3.22.dev1 → flow_record-3.22.dev2}/flow/record/adapter/broker.py +0 -0
- {flow_record-3.22.dev1 → flow_record-3.22.dev2}/flow/record/adapter/csvfile.py +0 -0
- {flow_record-3.22.dev1 → flow_record-3.22.dev2}/flow/record/adapter/duckdb.py +0 -0
- {flow_record-3.22.dev1 → flow_record-3.22.dev2}/flow/record/adapter/elastic.py +0 -0
- {flow_record-3.22.dev1 → flow_record-3.22.dev2}/flow/record/adapter/jsonfile.py +0 -0
- {flow_record-3.22.dev1 → flow_record-3.22.dev2}/flow/record/adapter/line.py +0 -0
- {flow_record-3.22.dev1 → flow_record-3.22.dev2}/flow/record/adapter/mongo.py +0 -0
- {flow_record-3.22.dev1 → flow_record-3.22.dev2}/flow/record/adapter/split.py +0 -0
- {flow_record-3.22.dev1 → flow_record-3.22.dev2}/flow/record/adapter/splunk.py +0 -0
- {flow_record-3.22.dev1 → flow_record-3.22.dev2}/flow/record/adapter/sqlite.py +0 -0
- {flow_record-3.22.dev1 → flow_record-3.22.dev2}/flow/record/adapter/stream.py +0 -0
- {flow_record-3.22.dev1 → flow_record-3.22.dev2}/flow/record/adapter/text.py +0 -0
- {flow_record-3.22.dev1 → flow_record-3.22.dev2}/flow/record/adapter/xlsx.py +0 -0
- {flow_record-3.22.dev1 → flow_record-3.22.dev2}/flow/record/base.py +0 -0
- {flow_record-3.22.dev1 → flow_record-3.22.dev2}/flow/record/context.py +0 -0
- {flow_record-3.22.dev1 → flow_record-3.22.dev2}/flow/record/exceptions.py +0 -0
- {flow_record-3.22.dev1 → flow_record-3.22.dev2}/flow/record/fieldtypes/credential.py +0 -0
- {flow_record-3.22.dev1 → flow_record-3.22.dev2}/flow/record/fieldtypes/net/__init__.py +0 -0
- {flow_record-3.22.dev1 → flow_record-3.22.dev2}/flow/record/fieldtypes/net/ip.py +0 -0
- {flow_record-3.22.dev1 → flow_record-3.22.dev2}/flow/record/fieldtypes/net/ipv4.py +0 -0
- {flow_record-3.22.dev1 → flow_record-3.22.dev2}/flow/record/fieldtypes/net/tcp.py +0 -0
- {flow_record-3.22.dev1 → flow_record-3.22.dev2}/flow/record/fieldtypes/net/udp.py +0 -0
- {flow_record-3.22.dev1 → flow_record-3.22.dev2}/flow/record/jsonpacker.py +0 -0
- {flow_record-3.22.dev1 → flow_record-3.22.dev2}/flow/record/packer.py +0 -0
- {flow_record-3.22.dev1 → flow_record-3.22.dev2}/flow/record/selector.py +0 -0
- {flow_record-3.22.dev1 → flow_record-3.22.dev2}/flow/record/stream.py +0 -0
- {flow_record-3.22.dev1 → flow_record-3.22.dev2}/flow/record/tools/__init__.py +0 -0
- {flow_record-3.22.dev1 → flow_record-3.22.dev2}/flow/record/tools/geoip.py +0 -0
- {flow_record-3.22.dev1 → flow_record-3.22.dev2}/flow/record/tools/rdump.py +0 -0
- {flow_record-3.22.dev1 → flow_record-3.22.dev2}/flow/record/utils.py +0 -0
- {flow_record-3.22.dev1 → flow_record-3.22.dev2}/flow/record/whitelist.py +0 -0
- {flow_record-3.22.dev1 → flow_record-3.22.dev2}/flow.record.egg-info/SOURCES.txt +0 -0
- {flow_record-3.22.dev1 → flow_record-3.22.dev2}/flow.record.egg-info/dependency_links.txt +0 -0
- {flow_record-3.22.dev1 → flow_record-3.22.dev2}/flow.record.egg-info/entry_points.txt +0 -0
- {flow_record-3.22.dev1 → flow_record-3.22.dev2}/flow.record.egg-info/requires.txt +0 -0
- {flow_record-3.22.dev1 → flow_record-3.22.dev2}/flow.record.egg-info/top_level.txt +0 -0
- {flow_record-3.22.dev1 → flow_record-3.22.dev2}/pyproject.toml +0 -0
- {flow_record-3.22.dev1 → flow_record-3.22.dev2}/setup.cfg +0 -0
- {flow_record-3.22.dev1 → flow_record-3.22.dev2}/tests/__init__.py +0 -0
- {flow_record-3.22.dev1 → flow_record-3.22.dev2}/tests/_data/.gitkeep +0 -0
- {flow_record-3.22.dev1 → flow_record-3.22.dev2}/tests/_docs/Makefile +0 -0
- {flow_record-3.22.dev1 → flow_record-3.22.dev2}/tests/_docs/conf.py +0 -0
- {flow_record-3.22.dev1 → flow_record-3.22.dev2}/tests/_docs/index.rst +0 -0
- {flow_record-3.22.dev1 → flow_record-3.22.dev2}/tests/_utils.py +0 -0
- {flow_record-3.22.dev1 → flow_record-3.22.dev2}/tests/adapter/__init__.py +0 -0
- {flow_record-3.22.dev1 → flow_record-3.22.dev2}/tests/adapter/test_avro.py +0 -0
- {flow_record-3.22.dev1 → flow_record-3.22.dev2}/tests/adapter/test_csv.py +0 -0
- {flow_record-3.22.dev1 → flow_record-3.22.dev2}/tests/adapter/test_elastic.py +0 -0
- {flow_record-3.22.dev1 → flow_record-3.22.dev2}/tests/adapter/test_json.py +0 -0
- {flow_record-3.22.dev1 → flow_record-3.22.dev2}/tests/adapter/test_line.py +0 -0
- {flow_record-3.22.dev1 → flow_record-3.22.dev2}/tests/adapter/test_splunk.py +0 -0
- {flow_record-3.22.dev1 → flow_record-3.22.dev2}/tests/adapter/test_sqlite_duckdb.py +0 -0
- {flow_record-3.22.dev1 → flow_record-3.22.dev2}/tests/adapter/test_text.py +0 -0
- {flow_record-3.22.dev1 → flow_record-3.22.dev2}/tests/adapter/test_xlsx.py +0 -0
- {flow_record-3.22.dev1 → flow_record-3.22.dev2}/tests/conftest.py +0 -0
- {flow_record-3.22.dev1 → flow_record-3.22.dev2}/tests/fieldtypes/__init__.py +0 -0
- {flow_record-3.22.dev1 → flow_record-3.22.dev2}/tests/fieldtypes/test_ip.py +0 -0
- {flow_record-3.22.dev1 → flow_record-3.22.dev2}/tests/packer/__init__.py +0 -0
- {flow_record-3.22.dev1 → flow_record-3.22.dev2}/tests/packer/test_json_packer.py +0 -0
- {flow_record-3.22.dev1 → flow_record-3.22.dev2}/tests/packer/test_packer.py +0 -0
- {flow_record-3.22.dev1 → flow_record-3.22.dev2}/tests/record/__init__.py +0 -0
- {flow_record-3.22.dev1 → flow_record-3.22.dev2}/tests/record/test_adapter.py +0 -0
- {flow_record-3.22.dev1 → flow_record-3.22.dev2}/tests/record/test_context.py +0 -0
- {flow_record-3.22.dev1 → flow_record-3.22.dev2}/tests/record/test_descriptor.py +0 -0
- {flow_record-3.22.dev1 → flow_record-3.22.dev2}/tests/record/test_multi_timestamp.py +0 -0
- {flow_record-3.22.dev1 → flow_record-3.22.dev2}/tests/record/test_record.py +0 -0
- {flow_record-3.22.dev1 → flow_record-3.22.dev2}/tests/selector/__init__.py +0 -0
- {flow_record-3.22.dev1 → flow_record-3.22.dev2}/tests/selector/test_compiled.py +0 -0
- {flow_record-3.22.dev1 → flow_record-3.22.dev2}/tests/selector/test_selectors.py +0 -0
- {flow_record-3.22.dev1 → flow_record-3.22.dev2}/tests/test_deprecations.py +0 -0
- {flow_record-3.22.dev1 → flow_record-3.22.dev2}/tests/test_regressions.py +0 -0
- {flow_record-3.22.dev1 → flow_record-3.22.dev2}/tests/test_utils.py +0 -0
- {flow_record-3.22.dev1 → flow_record-3.22.dev2}/tests/tools/__init__.py +0 -0
- {flow_record-3.22.dev1 → flow_record-3.22.dev2}/tests/tools/test_rdump.py +0 -0
- {flow_record-3.22.dev1 → flow_record-3.22.dev2}/tox.ini +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: flow.record
|
|
3
|
-
Version: 3.22.
|
|
3
|
+
Version: 3.22.dev2
|
|
4
4
|
Summary: A library for defining and creating structured data (called records) that can be streamed to disk or piped to other tools that use flow.record
|
|
5
5
|
Author-email: Dissect Team <dissect@fox-it.com>
|
|
6
6
|
License-Expression: AGPL-3.0-or-later
|
|
@@ -28,6 +28,7 @@ except ImportError:
|
|
|
28
28
|
from flow.record.base import FieldType, Record
|
|
29
29
|
|
|
30
30
|
RE_NORMALIZE_PATH = re.compile(r"[\\/]+")
|
|
31
|
+
RE_WINDOWS_PATH = re.compile(r"^[a-zA-Z]:[\\/]")
|
|
31
32
|
|
|
32
33
|
UTC = timezone.utc
|
|
33
34
|
|
|
@@ -602,6 +603,10 @@ def _is_posixlike_path(path: Any) -> bool:
|
|
|
602
603
|
if isinstance(path, pathlib.PurePath):
|
|
603
604
|
obj = getattr(path, "parser", None) or path._flavour
|
|
604
605
|
return "\\" not in (obj.sep, obj.altsep)
|
|
606
|
+
if isinstance(path, str):
|
|
607
|
+
if RE_WINDOWS_PATH.match(path):
|
|
608
|
+
return False
|
|
609
|
+
return "/" in path and "\\" not in path
|
|
605
610
|
return False
|
|
606
611
|
|
|
607
612
|
|
|
@@ -609,6 +614,10 @@ def _is_windowslike_path(path: Any) -> bool:
|
|
|
609
614
|
if isinstance(path, pathlib.PurePath):
|
|
610
615
|
obj = getattr(path, "parser", None) or path._flavour
|
|
611
616
|
return "\\" in (obj.sep, obj.altsep)
|
|
617
|
+
if isinstance(path, str):
|
|
618
|
+
if RE_WINDOWS_PATH.match(path):
|
|
619
|
+
return True
|
|
620
|
+
return "\\" in path
|
|
612
621
|
return False
|
|
613
622
|
|
|
614
623
|
|
|
@@ -28,7 +28,7 @@ version_tuple: VERSION_TUPLE
|
|
|
28
28
|
commit_id: COMMIT_ID
|
|
29
29
|
__commit_id__: COMMIT_ID
|
|
30
30
|
|
|
31
|
-
__version__ = version = '3.22.
|
|
32
|
-
__version_tuple__ = version_tuple = (3, 22, '
|
|
31
|
+
__version__ = version = '3.22.dev2'
|
|
32
|
+
__version_tuple__ = version_tuple = (3, 22, 'dev2')
|
|
33
33
|
|
|
34
|
-
__commit_id__ = commit_id = '
|
|
34
|
+
__commit_id__ = commit_id = 'gcd69cf171'
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: flow.record
|
|
3
|
-
Version: 3.22.
|
|
3
|
+
Version: 3.22.dev2
|
|
4
4
|
Summary: A library for defining and creating structured data (called records) that can be streamed to disk or piped to other tools that use flow.record
|
|
5
5
|
Author-email: Dissect Team <dissect@fox-it.com>
|
|
6
6
|
License-Expression: AGPL-3.0-or-later
|
|
@@ -578,7 +578,10 @@ def custom_pure_path(sep: str, altsep: str) -> pathlib.PurePath:
|
|
|
578
578
|
(custom_pure_path(sep="/", altsep="")("/foo/bar"), True),
|
|
579
579
|
(custom_pure_path(sep="\\", altsep="/")(r"C:\foo\bar"), False),
|
|
580
580
|
(custom_pure_path(sep=":", altsep="\\")(r"C:\foo\bar"), False),
|
|
581
|
-
("/foo/bar",
|
|
581
|
+
("/foo/bar", True),
|
|
582
|
+
(r"C:\foo\bar", False),
|
|
583
|
+
(r"C:/foo/bar", False),
|
|
584
|
+
(r"\??\C:\Windows\System32\calc.exe", False),
|
|
582
585
|
],
|
|
583
586
|
)
|
|
584
587
|
def test__is_posixlike_path(path_: pathlib.PurePath | str, is_posix: bool) -> None:
|
|
@@ -594,6 +597,9 @@ def test__is_posixlike_path(path_: pathlib.PurePath | str, is_posix: bool) -> No
|
|
|
594
597
|
(custom_pure_path(sep="\\", altsep="/")(r"C:\foo\bar"), True),
|
|
595
598
|
(custom_pure_path(sep=":", altsep="\\")(r"C:\foo\bar"), True),
|
|
596
599
|
("/foo/bar", False),
|
|
600
|
+
(r"C:\foo\bar", True),
|
|
601
|
+
(r"C:/foo/bar", True),
|
|
602
|
+
(r"\??\C:\Windows\System32\calc.exe", True),
|
|
597
603
|
],
|
|
598
604
|
)
|
|
599
605
|
def test__is_windowslike_path(path_: pathlib.PurePath, is_windows: bool) -> None:
|
|
@@ -677,7 +683,7 @@ def test_path() -> None:
|
|
|
677
683
|
),
|
|
678
684
|
(
|
|
679
685
|
("/some/path", pathlib.PureWindowsPath("win/path"), pathlib.PurePosixPath("pos/path")),
|
|
680
|
-
flow.record.fieldtypes.
|
|
686
|
+
flow.record.fieldtypes.posix_path,
|
|
681
687
|
),
|
|
682
688
|
(
|
|
683
689
|
(pathlib.PurePosixPath("pos/path"), pathlib.PureWindowsPath("win/path")),
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|