Mathics3

v10.0.1 safe
4.0
Medium Risk

A general-purpose computer algebra system.

🤖 AI Analysis

Final verdict: SAFE

The package appears to be legitimate with no clear signs of malicious activity. However, there are some elevated risks related to network calls and shell executions that require careful monitoring.

  • network risk due to URL fetching
  • shell execution increasing operational risk
Per-check LLM notes
  • Network: The network call pattern suggests fetching files from URLs, which could be part of the package's functionality but warrants further investigation to ensure URLs are trusted.
  • Shell: Shell execution patterns indicate that the package runs external commands, which might be necessary for its operation but increases risk if not properly sanitized or controlled.
  • Obfuscation: The observed patterns suggest some form of data obfuscation, but without additional context, it's unclear if this is malicious or simply part of the package's intended functionality.
  • Credentials: No clear signs of credential harvesting detected.
  • Metadata: The author's information is incomplete, suggesting a potentially less experienced or less reputable maintainer.

🔬 Heuristic Checks

Outbound Network Calls score 1.5

Found 1 network call pattern(s)

  • uncate_line(fname))) with urllib.request.urlopen(fname) as f: code = f.read().decode("utf-8")
Code Obfuscation score 10.0

Found 6 obfuscation pattern(s)

  • ode("utf-8") string = base64.b64decode(string) tmp = zlib.decompress(string) tmp =
  • be root of a number" def eval(self, n, evaluation: Evaluation): "CubeRoot[n_Comple
  • sympy_name = "Add" def eval(self, elements, evaluation: Evaluation): "Plus[eleme
  • lf) factor = self.eval(Expression(SymbolSequence, x.imag, y), evaluation)
  • ) result = self.eval(Expression(SymbolSequence, x, y), evaluation) if res
  • = "multiply numbers" def eval(self, elements, evaluation: Evaluation): "Times[elem
Shell / Subprocess Execution score 8.0

Found 4 shell execution pattern(s)

  • op-tables.json"): os.system( "mathics3-generate-json-table"
  • or-tables.json"): os.system( "mathics3-generate-operator-json-table" " -
  • else: subprocess.run(source_code[1:], shell=True) shell.definitio
  • bprocess.run(source_code[1:], shell=True) shell.definitions.increment_line_no(1)
Credential Harvesting

No credential harvesting patterns detected

Typosquatting

No typosquatting candidates detected

Registered Email Domain

Email domain looks legitimate: googlegroups.com>

Suspicious Page Links

All external links appear legitimate

Git Repository History

Repository Mathics3/mathics-core appears legitimate

Maintainer History score 4.0

2 maintainer concern(s) found

  • Author name is missing or very short
  • Author "" 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 Mathics3
Create a mini-application named 'AlgebraSolver' using the Python package 'Mathics3'. This application will serve as a user-friendly interface for solving various algebraic equations and expressions, making it accessible for students and educators alike. Your task is to develop a command-line tool that takes input from the user in the form of mathematical expressions or equations, processes them using Mathics3's powerful algebraic computation capabilities, and then displays the solution or simplified form back to the user. Here are the key functionalities your application should include:

1. **Expression Simplification**: Allow users to input complex algebraic expressions, which the application will simplify using Mathics3.
2. **Equation Solving**: Provide functionality to solve linear, quadratic, and higher-order polynomial equations. Ensure the application outputs all possible solutions.
3. **Graphical Representation**: Implement a feature to plot graphs of the entered functions or equations, utilizing external libraries like matplotlib for visualization.
4. **History Feature**: Keep track of previous inputs and outputs, allowing users to review their calculations easily.
5. **Help and Documentation**: Include a help menu that explains how to use each feature effectively and provides examples of valid inputs.
6. **Error Handling**: Robust error handling to manage incorrect inputs gracefully and provide meaningful feedback.

For each feature, detail how Mathics3 is integrated into the application. For example, for expression simplification, demonstrate how you utilize Mathics3 commands to parse and simplify the user's input. Additionally, explore how you can extend Mathics3's capabilities by integrating it with other Python libraries for enhanced functionality.