-
Notifications
You must be signed in to change notification settings - Fork 13
Overall doc review #130
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Overall doc review #130
Changes from 8 commits
Commits
Show all changes
13 commits
Select commit
Hold shift + click to select a range
98c60f4
Edits to RST files
PipKat f85a2cf
Edits based on using HTML artifact
PipKat 2f9cbf0
Edits of things found as I prepared the PR for review
PipKat e64c451
Update doc/source/getting_started/installation.rst
svandenb-dev a19a5bc
Update doc/source/getting_started/troubleshooting.rst
svandenb-dev 41ea975
DOC: rework main doc page layout
SMoraisAnsys 354881a
DOC: update following code review
SMoraisAnsys c3fa34e
MISC: update following code review
SMoraisAnsys bbe4803
MISC: update following code review
SMoraisAnsys eab2b39
Update doc/source/getting_started/installation.rst
svandenb-dev 00fb3fd
Update doc/source/getting_started/installation.rst
svandenb-dev 943cff1
Merge branch 'main' into doc/overall_review_descriptive_content
SMoraisAnsys 33fb46c
Merge branch 'main' into doc/overall_review_descriptive_content
SMoraisAnsys File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -11,62 +11,65 @@ | |
[](https://www.python.org/downloads/) | ||
[](https://opensource.org/licenses/MIT)[! | ||
|
||
## What is PyEDB ? | ||
## What is PyEDB? | ||
|
||
ANSYS EDB is very powerful for processing complex and large layout design. EDB-core native API | ||
can be used to automate workflows. However, it requires a deep comprehension of the architecture and | ||
classes inheritances, resulting with a learning curve not always compatible with daily work load. | ||
PyEDB is Python client library for processing complex and large layout designs in the | ||
Ansys Electronics Database (EDB) format, which stores information describing designs for | ||
[Ansys Electronics Desktop](https://www.ansys.com/products/electronics)(AEDT). | ||
|
||
PyEDB was developed to provide high level classes calling EDB-core API to speed up EDB adoption | ||
and improve user experience. Thanks to its application oriented architecture PyEDB, users can | ||
start using EDB faster and easier. | ||
While you can also use the [PyEDB-Core](https://github.com/ansys/pyedb-core) API to automate EDB workflows, | ||
using it requires a deep comprehension of the EDB architecture and class inheritances, resulting in | ||
a learning curve not always compatible with daily work loads. | ||
|
||
## Install on CPython from PyPI | ||
|
||
You can install PyEDB on CPython 3.7 through 3.10 from PyPI with this command: | ||
|
||
```sh | ||
pip install pyedb | ||
``` | ||
To speed up EDB adoption and improve user experience, PyEDB provides high-level classes that call | ||
the PyEDB-Core API. Thanks to PyEDB's application-oriented architecture, you can start using EDB | ||
faster and easier. | ||
|
||
## About PyEDB | ||
|
||
PyEDB is part of the larger [PyAnsys](https://docs.pyansys.com "PyAnsys") effort to facilitate the use of Ansys technologies directly from Python. | ||
|
||
PyEDB is intended to consolidate and extend all existing | ||
functionalities around scripting for EDB to allow reuse of existing code, | ||
sharing of best practices, and increased collaboration. | ||
PyEDB is part of the larger [PyAnsys](https://docs.pyansys.com "PyAnsys") effort to facilitate the use | ||
of Ansys technologies directly from Python. It is intended to consolidate and extend all existing | ||
functionalities around scripting for EDB to allow reuse of existing code, sharing of best practices, | ||
and increased collaboration. | ||
|
||
## About EDB | ||
PyEDB includes functionality for interacting with Ansys electromagnetic simulators: : HFSS, | ||
HFSS 3D Layout, Icepak, Maxwell, Q3D, and SIwave. | ||
|
||
[AEDT](https://www.ansys.com/products/electronics) is a database allowing efficient and fast | ||
layout design handling and processing for building ready to solve projects. EDB is addressing Signal | ||
Integrity (SI), Power Integrity (PI-DC) and also Electro-Thermal work flows. The EDB can be | ||
imported into Electromagnetic Desktop which enables a user to modify layout, | ||
assign materials, define ports, simulations and constraints and then launch any of | ||
the various electromagnetic simulators: HFSS, HFSS3Dlayout, SIwave, Icepak, Maxwell, Q3D. | ||
## What is EDB? | ||
|
||
AEDB is running as standalone API and opens aedb folder for directly querying and manipulating | ||
layout design in memory and does not require opening any User Interface (UI). Hence AEDB is the fastest | ||
and most efficient way to handle large and complex layout. | ||
EDB provides a proprietary database file format (AEDB) for efficient and fast layout design | ||
handling and processing for building ready-to-solve projects. EDB addresses signal integrity | ||
(SI), power integrity (PI-DC), and electro-thermal work flows. You can import an AEDB file | ||
into AEDT to modify the layout, assign materials, and define ports, simulations, and constraints. | ||
You can then launch any of the Ansys electromagnetic simulators. | ||
|
||
AEDB can also been parsed with and Electromagnetic simulator command line like HFSS or SIwave in bacth. | ||
Therefore, completely non graphically flows can be deployed from layout translation up to simulatiom results. | ||
AEDB can also be imported in ANSYS AEDT with PyAEDT for example to display the project, combining 3D design or performing simulation post-processing. AEDB also supports 3D component models. | ||
EDB runs as a standalone API, which means that you don't need to open a user interface (UI). | ||
Because EDB opens the ``aedb`` folder for directly querying and manipulating layout design in | ||
memory, it provides the fastest and most efficient way to handle a large and complex layout. | ||
|
||
`PyEDB` is licensed under the [MIT License](https://github.com/ansys/pyedb/blob/main/LICENSE) | ||
You can also parse an AEDB file from a command line in batch in an Ansys electromagnetic simulator | ||
like HFSS or SIwave. Thus, you can deploy completely non-graphical flows, from layout | ||
translation through simulatiom results. | ||
|
||
PyEDB includes functionality for interacting with the following AEDT tools and Ansys products: | ||
|
||
- HFSS 3D Layout | ||
- Icepak | ||
- EDB | ||
- Icepak | ||
Additionally, you can use PyAEDT to import an AEDB file into AEDT to view a project, | ||
combine 3D designs, or perform simulation postprocessing. EDB also supports 3D component models. | ||
|
||
## Documentation and issues | ||
|
||
Documentation for the latest stable release of PyEDB is hosted at | ||
[PyEDB documentation](https://edb.docs.pyansys.com/version/dev/index.html). | ||
SMoraisAnsys marked this conversation as resolved.
Show resolved
Hide resolved
|
||
The documentation has five sections: | ||
|
||
- `Getting started <https://edb.docs.pyansys.com/version/version/dev/getting_started/index.html#>`_: Describes | ||
how to install PyEDB in user mode. | ||
- `User guide <https:edb.docs.pyansys.com/version/version/dev/user_guide/index.html>`_: Describes how to | ||
use PyEDB. | ||
- `API reference <edb.docs.pyansys.com/version/version/dev/api/index.html>`_: Provides API member descriptions | ||
and usage examples. | ||
- `Examples <https://edb.docs.pyansys.com/version/version/dev/examples/index.html>`_: Provides examples showing | ||
end-to-end workflows for using PyEDB. | ||
- `Contribute <https://edb.docs.pyansys.com/version/version/dev/contribute.html>`_: Describes how to install | ||
PyEDB in developer mode and how to contribute to this PyAnsys library. | ||
|
||
In the upper right corner of the documentation's title bar, there is an option | ||
for switching from viewing the documentation for the latest stable release | ||
|
@@ -81,38 +84,12 @@ you can post questions, share ideas, and get community feedback. | |
|
||
To reach the project support team, email [[email protected]](mailto:[email protected]). | ||
|
||
## Dependencies | ||
|
||
To run PyEDB, you must have a local licenced copy of AEDT. | ||
PyEDB supports AEDT versions 2022 R1 or newer. | ||
|
||
## Why PyEDB ? | ||
|
||
ANSYS EDB is very powerful for processing complex and large layout design. EDB-core native API | ||
can be used to automate workflows. However it requires a deep comprehension of the architecture and | ||
classes inheritances, resulting with a learning curve not always compatible with daily work load. | ||
|
||
PyEDB was developed to provide high level classes calling EDB-core API to speed up EDB adoption | ||
and improve user experience. Thanks to its application oriented architecture PyEDB, users can | ||
start using EDB faster and easier. | ||
|
||
## Example | ||
|
||
``` python | ||
from pyedb.dotnet.edb import Edb | ||
from pyedb.generic.general_methods import generate_unique_folder_name | ||
import pyedb.misc.downloads as downloads | ||
|
||
temp_folder = generate_unique_folder_name() | ||
targetfile = downloads.download_file("edb/ANSYS-HSD_V1.aedb", destination=temp_folder) | ||
edbapp = Edb(edbpath=targetfile, edbversion="2023.2") | ||
``` | ||
## License | ||
|
||
PyEDB is licensed under the MIT license. | ||
PyEDB is licensed under the [MIT License](https://github.com/ansys/pyedb/blob/main/LICENSE). | ||
|
||
PyEDB makes no commercial claim over Ansys whatsoever. This library extends the | ||
functionality of EDB by adding a Python interface to EDB-core without changing the | ||
functionality of EDB by adding a Python interface to PyEDB-Core without changing the | ||
core behavior or license of the original software. The use of PyEDB requires a | ||
legally licensed local copy of AEDT. | ||
|
||
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,124 @@ | ||
.. _contributing_pyedb: | ||
|
||
========== | ||
Contribute | ||
========== | ||
Overall guidance on contributing to a PyAnsys repository appears in | ||
`Contribute <https://dev.docs.pyansys.com/how-to/contributing.html>`_ | ||
in the *PyAnsys Developer's Guide*. Ensure that you are thoroughly familiar | ||
with this guide before attempting to contribute to PyEDB. | ||
|
||
The following contribution information is specific to PyEDB. | ||
|
||
Clone the repository | ||
-------------------- | ||
To clone and install the latest version of PyEDB in | ||
development mode, run these commands: | ||
|
||
.. code:: | ||
|
||
git clone https://github.com/ansys/pyedb | ||
cd pyedb | ||
python -m pip install --upgrade pip | ||
pip install -e . | ||
|
||
Post issues | ||
----------- | ||
Use the `PyEDB Issues <https://github.com/ansys/pyedb/issues>`_ | ||
page to submit questions, report bugs, and request new features. | ||
|
||
To reach the product support team, email `[email protected] <[email protected]>`_. | ||
|
||
View PyEDB documentation | ||
------------------------- | ||
Documentation for the latest stable release of PyEDB is hosted at | ||
`PyEDB documentation <https://edb.docs.pyansys.com>`_. | ||
|
||
In the upper right corner of the documentation's title bar, there is an option | ||
for switching from viewing the documentation for the latest stable release | ||
to viewing the documentation for the development version or previously | ||
released versions. | ||
|
||
Adhere to code style | ||
-------------------- | ||
PyEDB is compliant with `PyAnsys code style | ||
<https://dev.docs.pyansys.com/coding_style/index.html>`_. It uses the tool | ||
`pre-commit <https://pre-commit.com/>`_ to check the code style. You can install | ||
and activate this tool with these commands: | ||
|
||
.. code:: bash | ||
|
||
pip install pre-commit | ||
pre-commit run --all-files | ||
|
||
You can also install this as a pre-commit hook with this command: | ||
|
||
.. code:: bash | ||
|
||
pre-commit install | ||
|
||
This way, it's not possible for you to push code that fails the style checks. | ||
For example:: | ||
|
||
$ pre-commit install | ||
$ git commit -am "Add my cool feature." | ||
black....................................................................Passed | ||
isort (python)...........................................................Passed | ||
flake8...................................................................Passed | ||
codespell................................................................Passed | ||
fix requirements.txt.....................................................Passed | ||
blacken-docs.............................................................Passed | ||
|
||
Log errors | ||
~~~~~~~~~~ | ||
PyEDB has an internal logging tool named ``Messenger`` | ||
and a log file that is automatically generated in the project | ||
folder. | ||
|
||
The following examples show how ``Messenger`` is used to | ||
write both to the internal AEDT message windows and the log file: | ||
|
||
.. code:: python | ||
|
||
self.logger.error("This is an error message.") | ||
self.logger.warning("This is a warning message.") | ||
self.logger.info("This is an info message.") | ||
|
||
These examples show how to write messages only to the log file: | ||
|
||
.. code:: python | ||
|
||
self.logger.error("This is an error message.") | ||
self.logger.warning("This is a warning message.") | ||
self.logger.info("This is an info message.") | ||
|
||
|
||
Handle exceptions | ||
~~~~~~~~~~~~~~~~~ | ||
PyEDB uses a specific decorator, ``@pyedb_function_handler()``, | ||
to handle exceptions caused by methods and by the AEDT API. | ||
This exception handler decorator makes PyEDB fault tolerant | ||
to errors that can occur in any method. | ||
|
||
For example: | ||
|
||
.. code:: python | ||
|
||
@pyedb_function_handler() | ||
def my_method(self, var): | ||
pass | ||
|
||
Every method can return a value of ``True`` when successful or | ||
``False`` when failed. When a failure occurs, the error | ||
handler returns information about the error in both the console and | ||
log file. | ||
|
||
Hard-coded values | ||
~~~~~~~~~~~~~~~~~~ | ||
Do not write hard-coded values to the registry. Instead, use the Configuration service. | ||
|
||
Maximum line length | ||
~~~~~~~~~~~~~~~~~~~ | ||
Best practice is to keep the length at or below 120 characters for code | ||
and comments. Lines longer than this might not display properly on some terminals | ||
and tools or might be difficult to follow. |
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.