Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,9 @@
# from packaging import version
from distutils.version import LooseVersion
import re
import logging

logger=logging.getLogger(__name__)

def get_pypi_data(name, version=None):
"""return a dictionary with pypi project data"""
Expand Down Expand Up @@ -68,7 +70,7 @@ def get_latest_version(data):
return data['info']['version']


def get_release_date(data, version,logger):
def get_release_date(data, version, logger):

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[pylint] reported by reviewdog 🐶
W0621: Redefining name 'logger' from outer scope (line 8) (redefined-outer-name)

if not data:
logger.info('invalid data')
return None
Expand Down Expand Up @@ -117,5 +119,6 @@ def get_libyear(current_version, current_release_date, latest_version, latest_re
latest_release_date = dateutil.parser.parse(latest_release_date)

libdays = (latest_release_date - current_release_date).days
logger.info(f"Library days difference: {libdays} days between current release ({current_release_date}) and latest release ({latest_release_date})")
libyear = libdays/365
return libyear
return libyear
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,9 @@

import logging
import yaml
import traceback

logger=logging.getLogger(__name__)

#Files that would be parsed should be added here.
file_list = [
Expand Down Expand Up @@ -41,9 +43,6 @@ def find(name, path):
requirement_regrex = re.compile(REQUIREMENTS_REGEXP)


import logging
import traceback

def parse_requirement_txt(file_handle):
deps = []
file_name = getattr(file_handle, 'name', 'unknown')
Expand All @@ -53,13 +52,13 @@ def parse_requirement_txt(file_handle):
for encoding in ['utf-8', 'utf-16', 'latin1']:
try:
manifest = raw_bytes.decode(encoding)
logging.debug(f"[{file_name}] Successfully decoded with encoding: {encoding}")
logger.debug(f"[{file_name}] Successfully decoded with encoding: {encoding}")
break
except UnicodeDecodeError:
continue
else:
logging.error(f"[{file_name}] Failed to decode with utf-8, utf-16, or latin1")
logging.error(traceback.format_exc())
logger.error(f"[{file_name}] Failed to decode with utf-8, utf-16, or latin1")
logger.error(traceback.format_exc())
return []

for line in manifest.splitlines():
Expand Down Expand Up @@ -100,7 +99,7 @@ def parse_pipfile(file_handle):
try:
manifest = tomllib.load(file_handle)
except Exception as e:
logging.warning(f"Failed to parse Pipfile: {getattr(file_handle, 'name', 'unknown')}, error: {e}")
logger.warning(f"Failed to parse Pipfile: {getattr(file_handle, 'name', 'unknown')}, error: {e}")
return []

return map_dependencies_pipfile(manifest.get('packages', {}), 'runtime') + \
Expand Down Expand Up @@ -153,18 +152,18 @@ def parse_poetry(file_handle, repo_id=None, path=None):
try:
manifest = tomllib.load(file_handle)
except tomllib.TomlDecodeError as e:
logging.warning(f"[Repo ID: {repo_id}] Skipping malformed TOML file: {file_name} at {path}, error: {e}")
logger.warning(f"[Repo ID: {repo_id}] Skipping malformed TOML file: {file_name} at {path}, error: {e}")
return []
except Exception as e:
logging.error(f"[Repo ID: {repo_id}] Unexpected error while loading TOML from {file_name} at {path}: {e}")
logger.error(f"[Repo ID: {repo_id}] Unexpected error while loading TOML from {file_name} at {path}: {e}")
return []

try:
deps = manifest.get('tool', {}).get('poetry', {})
return map_dependencies_pipfile(deps.get('dependencies', {}), 'runtime') + \
map_dependencies_pipfile(deps.get('dev-dependencies', {}), 'develop')
except Exception as e:
logging.error(f"[Repo ID: {repo_id}] Error parsing dependencies from {file_name} at {path}: {e}")
logger.error(f"[Repo ID: {repo_id}] Error parsing dependencies from {file_name} at {path}: {e}")
return []


Expand Down Expand Up @@ -198,10 +197,10 @@ def parse_conda(file_handle):
dependencies = contents.get('dependencies', [])

if not dependencies:
print("No dependencies found.")
logger.info("No dependencies found.")
return []
else:
print("Dependencies found.")
logger.info("Dependencies found.")
for dep in dependencies:
if (type(dep) is dict) and dep['pip']:
pip = dep
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,8 @@
from collectoss.tasks.git.dependency_libyear_tasks.libyear_util.npm_parser import parse_package_json
from collectoss.tasks.git.dependency_libyear_tasks.libyear_util.pypi_libyear_util import sort_dependency_requirement,get_pypi_data,get_latest_version,get_release_date
from collectoss.tasks.git.dependency_libyear_tasks.libyear_util.npm_libyear_utils import get_NPM_data, get_npm_release_date, get_npm_latest_version,get_npm_current_version

import logging
logger=logging.getLogger(__name__)
#Files That would be parsed should be added here
file_list = [
'Requirement.txt',
Expand Down Expand Up @@ -95,6 +96,7 @@ def get_libyear(current_version, current_release_date, latest_version, latest_re
latest_release_date = dateutil.parser.parse(latest_release_date)

libdays = (latest_release_date - current_release_date).days
logger.info(libdays)
libyear = libdays/365
return libyear

Expand Down Expand Up @@ -186,4 +188,4 @@ def get_deps_libyear_data(path, logger):
dependency['latest_release_date'] = latest_release_date
dependency['libyear'] = libyear

return [d for d in dependencies if 'libyear' in d]
return [d for d in dependencies if 'libyear' in d]
Loading