Skip to content

Commit

Permalink
Update compute_directory_fingerprints #118
Browse files Browse the repository at this point in the history
Signed-off-by: Jono Yang <jyang@nexb.com>
  • Loading branch information
JonoYang committed Jun 23, 2023
1 parent f8d79b0 commit 1b561af
Show file tree
Hide file tree
Showing 3 changed files with 20 additions and 4 deletions.
5 changes: 5 additions & 0 deletions matchcode-toolkit/CHANGELOG.rst
Original file line number Diff line number Diff line change
@@ -1,6 +1,11 @@
Changelog
=========

v1.1.0
------

*2023-06-22* -- Rename ``compute_directory_fingerprints`` to ``compute_codebase_directory_fingerprints`` and create a new version of ``compute_directory_fingerprints`` that works on Resource objects instead of codebases.

v1.0.0
------

Expand Down
2 changes: 1 addition & 1 deletion matchcode-toolkit/setup.cfg
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[metadata]
name = matchcode-toolkit
version = 1.0.0
version = 1.1.0
license = Apache-2.0

# description must be on ONE line https://github.com/pypa/setuptools/issues/1390
Expand Down
17 changes: 14 additions & 3 deletions matchcode-toolkit/src/matchcode_toolkit/fingerprinting.py
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ def create_structure_fingerprint(directory, children):
return _create_directory_fingerprint(features)


def compute_directory_fingerprints(directory, codebase):
def _compute_directory_fingerprints(directory, codebase):
"""
Compute fingerprints for `directory` from `codebase`
"""
Expand All @@ -87,20 +87,31 @@ def compute_directory_fingerprints(directory, codebase):
if hasattr(directory, 'directory_structure_fingerprint'):
directory.directory_structure_fingerprint = directory_structure_fingerprint
else:
directory.extra_data['directory_structure'] = create_structure_fingerprint(directory, children)
directory.extra_data['directory_structure'] = directory_structure_fingerprint

directory.save(codebase)
return directory


def compute_directory_fingerprints(directory, codebase):
"""
Recursivly compute fingerprints for `directory` from `codebase`
"""
for resource in directory.walk(codebase, topdown=False):
if resource.is_file:
continue
_ = _compute_directory_fingerprints(resource, codebase)
return directory


def compute_codebase_directory_fingerprints(codebase):
"""
Compute fingerprints for directories from `codebase`
"""
for resource in codebase.walk(topdown=False):
if resource.is_file or not resource.path:
continue
_ = compute_directory_fingerprints(resource, codebase)
_ = _compute_directory_fingerprints(resource, codebase)
return codebase


Expand Down

0 comments on commit 1b561af

Please sign in to comment.