Skip to content
Merged
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
8 changes: 8 additions & 0 deletions .github/ISSUE_TEMPLATE/blank_template.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
---
name: Other
about: For all other issues to reach the community...
title: ''
labels: ''
assignees: ''

---
54 changes: 54 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
---
name: Bug report
about: Create a report to help us reproduce and correct the bug
title: ''
labels: 'Bug: triage'
assignees: ''

---

<!--
Before submitting a bug, please make sure the issue hasn't been already
addressed by searching through the past issues.
-->

#### Describe the bug
<!--
A clear and concise description of what the bug is.
-->

#### Steps/Code to Reproduce
<!--
Please add a minimal example (in the form of code) that reproduces the error.
Be as succinct as possible, do not depend on external data. In short, we are
going to copy-paste your code and we expect to get the same result as you.
-->

```python
Sample code to reproduce the problem
```

#### Expected Results
<!-- Example: No error is thrown. Please paste or describe the expected results.-->

#### Actual Results
<!-- Please paste or specifically describe the actual output or traceback. -->

#### Screenshots
<!-- If applicable, add screenshots to help explain your problem. -->

#### Versions
<!--
Please provide the following information:
- OS: [e.g. Windows]
- Browser (if you're reporting a bug in jupyter): [e.g. Edge, Firefox, Chrome, Safari]
- Python version: [e.g. 3.10.11]
- PyRIT version: [e.g. 0.1.0 or installed from main branch in editable mode]
- version of Python packages: please run the following snippet and paste the output:
```python
import pyrit
pyrit.show_versions()
```
-->

<!-- Thanks for contributing! -->
1 change: 1 addition & 0 deletions .github/ISSUE_TEMPLATE/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
blank_issues_enabled: false
20 changes: 20 additions & 0 deletions .github/ISSUE_TEMPLATE/doc_improvement.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
---
name: Documentation improvement
about: Create a report to help us improve the documentation. Alternatively you can just open a pull request with the suggested change.
title: ''
labels: Documentation
assignees: ''

---

#### Describe the issue linked to the documentation

<!--
Tell us what's confusing or missing in the documentation.
-->

#### Suggest a potential alternative/fix

<!--
Tell us how we could improve the documentation in this regard.
-->
22 changes: 22 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
---
name: Feature request
about: Suggest an idea for this project
title: ''
labels: feature-request
assignees: ''

---

#### Is your feature request related to a problem? Please describe.
<!-- A clear and concise description of what the problem is. E.g., I'm always
frustrated when ... -->

#### Describe the solution you'd like
<!-- A clear and concise description of what you want to happen. -->

#### Describe alternatives you've considered, if relevant
<!-- A clear and concise description of any alternative solutions or features
you've considered. -->

#### Additional context
<!-- Add any other context or screenshots about the feature request here. -->
16 changes: 16 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
## Description
<!--- Provide a general summary of your changes. -->
<!--- Mention related issues, pull requests, or discussions with #<issue/PR/discussion ID>. -->
<!--- Tag people for whom this PR may be of interest using @<username>. -->

## Tests
<!--- Select all that apply by putting an x between the brackets: [x] -->
- [ ] no new tests required
- [ ] new tests added
- [ ] existing tests adjusted

## Documentation
<!--- Select all that apply by putting an x between the brackets: [x] -->
- [ ] no documentation changes needed
- [ ] documentation added or edited
- [ ] example notebook added or updated
7 changes: 7 additions & 0 deletions pyrit/__init__.py
Original file line number Diff line number Diff line change
@@ -1,2 +1,9 @@
# Copyright (c) Microsoft Corporation.
# Licensed under the MIT license.

from .show_versions import show_versions # noqa: F401


__name__ = "pyrit"
# Remove dev suffix when releasing and keep in sync with pyproject.toml
__version__ = "0.1.0.dev0"
83 changes: 83 additions & 0 deletions pyrit/show_versions.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,83 @@
# Copyright (c) Microsoft Corporation.
# Licensed under the MIT license.

"""Utility methods to print system info for debugging.

Adapted from :py:func:`pandas.show_versions` and :py:func:`sklearn.show_versions`.
""" # noqa: RST304

import platform
import sys


def _get_sys_info():
"""System information.

Returns
-------
sys_info : dict
system and Python version information
"""
python = sys.version.replace("\n", " ")

blob = [
("python", python),
("executable", sys.executable),
("machine", platform.platform()),
]

return dict(blob)


def _get_deps_info():
"""Overview of the installed version of main dependencies.

This function does not import the modules to collect the version numbers
but instead relies on standard Python package metadata.

Returns
-------
deps_info: dict
version information on relevant Python libraries
"""
deps = sorted(
[
"pip",
"setuptools",
"numpy",
"scipy",
"Cython",
"scikit-learn",
"openai",
"torch",
"tensorflow",
"transformers",
]
)

from pyrit import __version__

deps_info = {"pyrit": __version__}

from importlib.metadata import PackageNotFoundError, version

for modname in deps:
try:
deps_info[modname] = version(modname)
except PackageNotFoundError:
deps_info[modname] = None
return deps_info


def show_versions():
"""Print useful debugging information."""
sys_info = _get_sys_info()
deps_info = _get_deps_info()

print("\nSystem:")
for k, stat in sys_info.items():
print("{k:>10}: {stat}".format(k=k, stat=stat))

print("\nPython dependencies:")
for k, stat in deps_info.items():
print("{k:>13}: {stat}".format(k=k, stat=stat))