EMMOntoPy

v0.11.4 safe
4.0
Medium Risk

Python reference API for the Elementary MultiperspectiveMaterial Ontology.

🤖 AI Analysis

Final verdict: SAFE

The package has minimal risks as it does not exhibit signs of obfuscation or credential harvesting. However, there is a moderate concern regarding subprocess calls which could potentially be exploited if not properly sanitized.

  • Moderate shell risk due to subprocess calls
  • Low risk in other areas such as network, obfuscation, and credentials
Per-check LLM notes
  • Network: The use of urllib to retrieve URLs might indicate data retrieval but lacks context to assess malicious intent.
  • Shell: Subprocess calls with 'nosec' comments could be used for executing external commands, which may pose a risk if not properly sanitized or controlled.
  • Obfuscation: No obfuscation patterns detected, indicating low risk.
  • Credentials: No credential harvesting patterns detected, indicating low risk.
  • Metadata: Low risk, but consider verifying the HTTPS links and author's activity.

🔬 Heuristic Checks

Outbound Network Calls score 3.0

Found 2 network call pattern(s)

  • _, msg = urllib.request.urlretrieve(url, destfile) # nosec except u
  • nosec except urllib.request.URLError: continue else:
Code Obfuscation

No obfuscation patterns detected

Shell / Subprocess Execution score 10.0

Found 6 shell execution pattern(s)

  • ug("Command %s", cmd) subprocess.run(cmd, check=True) # nosec graph = None if r
  • ote(_) for _ in cmd)) subprocess.check_call(cmd) # nosec def run_pandoc_pdf(latex_dir, pdf_engine, ou
  • x.quote(s) for s in cmd)) subprocess.check_call(cmd) # nosec # Fixing tex output texfile2 = basena
  • ) for s in cmd)) output = subprocess.check_output(cmd, timeout=60) # nosec output = subprocess.check_outp
  • out=60) # nosec output = subprocess.check_output(cmd, timeout=60) # nosec # Workaround for non-working
  • "get-url", remote] proc = subprocess.run( # nosec cmd, check=False, capture_
Credential Harvesting

No credential harvesting patterns detected

Typosquatting

No typosquatting candidates detected

Registered Email Domain

Email domain looks legitimate: sintef.no

Suspicious Page Links score 4.0

Found 2 suspicious link(s) on the package page

  • Non-HTTPS external link: http://pandoc.org/
  • Non-HTTPS external link: http://owl.cs.manchester.ac.uk/tools/fact/
Git Repository History

Repository emmo-repo/EMMOntoPy appears legitimate

Maintainer History score 2.0

1 maintainer concern(s) found

  • Author "Jesper Friis, Francesca Lønstad Bleken, Casper Welzel Andersen, Bjørn Tore Løvfall" appears to have only 1 package on PyPI (new or inactive account)
Known CVE Vulnerabilities

No known vulnerabilities found in OSV database.

💡 AI App Starter Prompt

Use this prompt to build a project with EMMOntoPy
Create a mini-application named 'Elementary Material Explorer' that leverages the EMMOntoPy Python package to explore and visualize the Elementary Multiperspective Material Ontology (EMMO). This application will serve as a tool for material scientists, engineers, and researchers to better understand the complex relationships between different materials and their properties from multiple perspectives.

The application should include the following features:
1. **Material Search**: Allow users to search for specific materials based on their properties or identifiers within the ontology.
2. **Relationship Visualization**: Provide a feature to visualize the relationships between different materials and their properties using graphs or network diagrams.
3. **Perspective Switching**: Enable users to view the same data from different ontological perspectives (e.g., physical, chemical, etc.).
4. **Property Analysis**: Offer basic analysis tools to compare properties of selected materials.
5. **Interactive Interface**: Develop an interactive web-based interface using Flask or a similar framework to make the application accessible and user-friendly.

Utilize the EMMOntoPy package to access and manipulate the ontology data effectively. For example, use its functions to query the ontology for specific materials, retrieve property information, and navigate through the hierarchical structure of the ontology. The goal is to create a comprehensive yet easy-to-use tool that showcases the power and flexibility of the Elementary Multiperspective Material Ontology.