Skip to content

Commit

Permalink
Merge branch 'main' into 404
Browse files Browse the repository at this point in the history
  • Loading branch information
lars-reimann committed Jul 11, 2023
2 parents 40e5b76 + 29abdb7 commit ce3f703
Show file tree
Hide file tree
Showing 159 changed files with 5,830 additions and 4,855 deletions.
4 changes: 4 additions & 0 deletions .coveragerc
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
[report]
exclude_lines =
pragma: no cover
if\s+(typing\.)?TYPE_CHECKING:
2 changes: 2 additions & 0 deletions .github/linters/.ruff.toml
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,8 @@ ignore = [
"FBT002",
# builtin-attribute-shadowing (not an issue)
"A003",
# implicit-return (can add a return even though all cases are covered)
"RET503",
# superfluous-else-return (sometimes it's more readable)
"RET505",
# superfluous-else-raise (sometimes it's more readable)
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/issue.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ jobs:
add-to-project:
runs-on: ubuntu-latest
steps:
- uses: actions/add-to-project@v0.4.1
- uses: actions/add-to-project@v0.5.0
with:
project-url: https://github.com/orgs/Safe-DS/projects/4
github-token: ${{ secrets.ADD_TO_PROJECT_PAT }}
2 changes: 2 additions & 0 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,3 +18,5 @@ jobs:
python-version: ${{ matrix.python-version }}
module-name: library_analyzer
coverage: ${{ matrix.python-version == '3.10' }}
secrets:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
8 changes: 5 additions & 3 deletions .github/workflows/megalinter.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,14 @@ name: MegaLinter

on:
pull_request:
branches: [main]
merge_group:
branches: [ main ]

jobs:
megalinter:
if: ${{ github.event_name == 'pull_request' }}
uses: lars-reimann/.github/.github/workflows/megalinter-reusable.yml@main
permissions:
contents: write
issues: write
pull-requests: write
secrets:
PAT: ${{ secrets.PAT }}
2 changes: 2 additions & 0 deletions .github/workflows/pr.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,3 +22,5 @@ jobs:
python-version: ${{ matrix.python-version }}
module-name: library_analyzer
coverage: ${{ matrix.python-version == '3.10' }}
secrets:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
4 changes: 2 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -37,13 +37,13 @@ coverage.xml

# mkdocs
/site/
/docs/reference/safeds/
/docs/reference/library_analyzer/
/docs/reference/SUMMARY.md

# MegaLinter
report/
megalinter-reports/

# Other
.DS_Store/
.DS_Store
*.log
3 changes: 1 addition & 2 deletions .mega-linter.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,5 +17,4 @@ JSON_PRETTIER_FILE_EXTENSIONS:

# Commands
PRE_COMMANDS:
- command: npm install @lars-reimann/prettier-config
cwd: workspace
- command: npm i @lars-reimann/prettier-config
21 changes: 16 additions & 5 deletions docs/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,10 @@
[![PyPI](https://img.shields.io/pypi/v/library-analyzer)](https://pypi.org/project/library-analyzer)
[![Main](https://github.com/Safe-DS/Library-Analyzer/actions/workflows/main.yml/badge.svg)](https://github.com/Safe-DS/Library-Analyzer/actions/workflows/main.yml)
[![codecov](https://codecov.io/gh/Safe-DS/Library-Analyzer/branch/main/graph/badge.svg?token=UyCUY59HKM)](https://codecov.io/gh/Safe-DS/Library-Analyzer)
[![Documentation Status](https://readthedocs.org/projects/library-analyzer/badge/?version=stable)](https://library-analyzer.safe-ds.com)
[![Documentation Status](https://readthedocs.org/projects/library-analyzer/badge/?version=stable)](https://library-analyzer.safeds.com)

Analysis of Python libraries and code that uses them.

## Documentation

You can find the full documentation [here](https://library-analyzer.safe-ds.com).

## Installation

Get the latest version from [PyPI](https://pypi.org/project/library-analyzer):
Expand All @@ -19,6 +15,10 @@ Get the latest version from [PyPI](https://pypi.org/project/library-analyzer):
pip install library-analyzer
```

## Documentation

You can find the full documentation [here](https://library-analyzer.safeds.com).

## Example usage

1. Analyze the API of a library:
Expand All @@ -37,3 +37,14 @@ pip install library-analyzer
```shell
analyze-library migrate -a1 data/api/scikit-learn_v0.24.2_api.json -a2 data/api/sklearn__apiv2.json -a data/annotations/annotations.json -o out
```

## Contributing

We welcome contributions from everyone. As a starting point, check the following resources:

* [Setting up a development environment](https://library-analyzer.safeds.com/en/latest/development/environment/)
* [Contributing page](https://github.com/Safe-DS/Library-Analyzer/contribute)

If you need further help, please [use our discussion forum][forum].

[forum]: https://github.com/orgs/Safe-DS/discussions
83 changes: 71 additions & 12 deletions docs/development/environment.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,29 +2,88 @@

This document describes how to configure and use your development environment.

!!! note

All terminal commands listed below are assumed to be run from the root of the repository.
## Prerequisites

## Initial setup
You must complete these steps once before you can start setting up the project itself:

1. Install [Python 3.10](https://www.python.org/downloads/).
2. Install [poetry](https://python-poetry.org/docs/master/#installation).
3. Install dependencies of this project by running this command:
2. Verify that `python` can be launched by running this command in a **new** terminal:
```shell
poetry install
python --version
```
If this fails, add the directory that contains the `python` executable to your `PATH` environment variable.

## Running the tests

1. Run this command:
3. Install [Poetry](https://python-poetry.org/docs/master/#installing-with-the-official-installer) with the official installer. Follow the instructions for your operating system in the linked document.
4. Verify that `poetry` can be launched by running this command in a **new** terminal:
```shell
poetry run pytest
poetry --version
```
If this fails, add the directory that contains the `poetry` executable to your `PATH` environment variable.

## Project setup

Follow the instructions for your preferred IDE. If you want to use neither [PyCharm](https://www.jetbrains.com/pycharm/) nor [Visual Studio Code](https://code.visualstudio.com/), use the generic instructions. You only need to do these steps once.

!!! note

All terminal commands listed in this section are assumed to be run from the root of the repository.

=== "PyCharm"

1. Clone the repository.
2. Open the project folder in PyCharm.
3. Follow the instructions in the [PyCharm documentation](https://www.jetbrains.com/help/pycharm/poetry.html#poetry-env) to create a **new** Poetry environment and to install the dependencies of the project.
4. Open the PyCharm settings and search for "Python Integrated Tools". Set the "Default test runner" to "pytest" and the "Docstring format" to "NumPy". Your settings should look like this:
![PyCharm settings "Python Integrated Tools"](./img/pycharm_python_integrated_tools.png)

=== "Visual Studio Code"

1. Clone the repository.
2. Open the project folder in Visual Studio Code.
3. Install the [Python extension](https://marketplace.visualstudio.com/items?itemName=ms-python.python).
4. Create a new Poetry environment and install the dependencies of the project by running this command:
```shell
poetry install
```
5. Find the path to the Poetry environment that was created in step 4 by running this command:
```shell
poetry env info --path
```
6. Copy the output of step 5 to your clipboard.
7. Open the command palette and search for "Python: Select Interpreter".
8. Select the Poetry environment that matches the output of step 5. It should show up in the list of available interpreters. If it does not, you can pick it manually by choosing "Enter interpreter path..." and pasting the path that you copied in step 6 into the input field.
9. Open the command palette and search for "Python: Configure Tests".
10. Select "pytest" as the test runner.
11. Select "tests" as the directory containing tests.

=== "Generic"

1. Clone the repository.
2. Create a new Poetry environment and install the dependencies of the project by running this command:
```shell
poetry install
```

## Running the tests

=== "PyCharm"

Right-click the `tests` directory in the [Project tool window](https://www.jetbrains.com/help/pycharm/project-tool-window.html) and select "Run 'pytest in tests'".

=== "Visual Studio Code"

Run the tests by opening the command palette and searching for "Test: Run All Tests".

=== "Generic"

Run this command from the root of the repository:
```shell
poetry run pytest
```

## Serving the documentation

1. Start the server by running this command:
1. Start the server by running this command from the root of the repository:
```shell
poetry run mkdocs serve
```
Expand Down
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
6 changes: 6 additions & 0 deletions mkdocs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -38,9 +38,11 @@ theme:
features:
- content.code.copy
- navigation.tabs
- content.tabs.link
- navigation.indexes
- navigation.instant
- navigation.sections
- navigation.tabs
- navigation.top

plugins:
Expand Down Expand Up @@ -119,6 +121,10 @@ markdown_extensions:
- toc:
permalink: true

# Tabs
- pymdownx.tabbed:
alternate_style: true

extra_javascript:
- javascript/mathjax.js
- https://polyfill.io/v3/polyfill.min.js?features=es6
Expand Down
Loading

0 comments on commit ce3f703

Please sign in to comment.