PyIBIS-AMI 5.1.1__tar.gz → 5.1.3__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {PyIBIS-AMI-5.1.1/src/PyIBIS_AMI.egg-info → PyIBIS-AMI-5.1.3}/PKG-INFO +2 -2
- {PyIBIS-AMI-5.1.1 → PyIBIS-AMI-5.1.3}/README.md +1 -1
- PyIBIS-AMI-5.1.3/docs/source/ami.rst +24 -0
- {PyIBIS-AMI-5.1.1 → PyIBIS-AMI-5.1.3}/docs/source/conf.py +67 -38
- PyIBIS-AMI-5.1.3/docs/source/ibis.rst +19 -0
- {PyIBIS-AMI-5.1.1 → PyIBIS-AMI-5.1.3}/docs/source/index.rst +5 -7
- PyIBIS-AMI-5.1.3/docs/source/install.rst +31 -0
- PyIBIS-AMI-5.1.3/docs/source/modules.rst +12 -0
- PyIBIS-AMI-5.1.3/docs/source/tools.rst +9 -0
- {PyIBIS-AMI-5.1.1 → PyIBIS-AMI-5.1.3}/pyproject.toml +1 -1
- {PyIBIS-AMI-5.1.1 → PyIBIS-AMI-5.1.3/src/PyIBIS_AMI.egg-info}/PKG-INFO +2 -2
- {PyIBIS-AMI-5.1.1 → PyIBIS-AMI-5.1.3}/src/PyIBIS_AMI.egg-info/SOURCES.txt +4 -1
- {PyIBIS-AMI-5.1.1 → PyIBIS-AMI-5.1.3}/src/pyibisami/__init__.py +1 -0
- {PyIBIS-AMI-5.1.1 → PyIBIS-AMI-5.1.3}/src/pyibisami/__main__.py +1 -0
- {PyIBIS-AMI-5.1.1 → PyIBIS-AMI-5.1.3}/src/pyibisami/ami/config.py +104 -24
- {PyIBIS-AMI-5.1.1 → PyIBIS-AMI-5.1.3}/src/pyibisami/ami/model.py +7 -1
- {PyIBIS-AMI-5.1.1 → PyIBIS-AMI-5.1.3}/src/pyibisami/ami/parser.py +1 -0
- {PyIBIS-AMI-5.1.1 → PyIBIS-AMI-5.1.3}/src/pyibisami/ibis/file.py +4 -3
- {PyIBIS-AMI-5.1.1 → PyIBIS-AMI-5.1.3}/src/pyibisami/ibis/model.py +1 -1
- {PyIBIS-AMI-5.1.1 → PyIBIS-AMI-5.1.3}/src/pyibisami/ibis/parser.py +2 -2
- PyIBIS-AMI-5.1.1/docs/source/intro.rst +0 -4
- PyIBIS-AMI-5.1.1/docs/source/modules.rst +0 -44
- {PyIBIS-AMI-5.1.1 → PyIBIS-AMI-5.1.3}/LICENSE +0 -0
- {PyIBIS-AMI-5.1.1 → PyIBIS-AMI-5.1.3}/MANIFEST.in +0 -0
- {PyIBIS-AMI-5.1.1 → PyIBIS-AMI-5.1.3}/examples/all_taps.run +0 -0
- {PyIBIS-AMI-5.1.1 → PyIBIS-AMI-5.1.3}/examples/bandwidth.run +0 -0
- {PyIBIS-AMI-5.1.1 → PyIBIS-AMI-5.1.3}/examples/dummy.em +0 -0
- {PyIBIS-AMI-5.1.1 → PyIBIS-AMI-5.1.3}/examples/examples.md +0 -0
- {PyIBIS-AMI-5.1.1 → PyIBIS-AMI-5.1.3}/examples/freq_resp.em +0 -0
- {PyIBIS-AMI-5.1.1 → PyIBIS-AMI-5.1.3}/examples/impulse.em +0 -0
- {PyIBIS-AMI-5.1.1 → PyIBIS-AMI-5.1.3}/examples/impulse_response_8ma.txt +0 -0
- {PyIBIS-AMI-5.1.1 → PyIBIS-AMI-5.1.3}/examples/mode.run +0 -0
- {PyIBIS-AMI-5.1.1 → PyIBIS-AMI-5.1.3}/examples/stratix4_ami_tx_runs/all_taps.run +0 -0
- {PyIBIS-AMI-5.1.1 → PyIBIS-AMI-5.1.3}/examples/stratix4_ami_tx_runs/test_results.xml +0 -0
- {PyIBIS-AMI-5.1.1 → PyIBIS-AMI-5.1.3}/setup.cfg +0 -0
- {PyIBIS-AMI-5.1.1 → PyIBIS-AMI-5.1.3}/src/PyIBIS_AMI.egg-info/dependency_links.txt +0 -0
- {PyIBIS-AMI-5.1.1 → PyIBIS-AMI-5.1.3}/src/PyIBIS_AMI.egg-info/entry_points.txt +0 -0
- {PyIBIS-AMI-5.1.1 → PyIBIS-AMI-5.1.3}/src/PyIBIS_AMI.egg-info/requires.txt +0 -0
- {PyIBIS-AMI-5.1.1 → PyIBIS-AMI-5.1.3}/src/PyIBIS_AMI.egg-info/top_level.txt +0 -0
- {PyIBIS-AMI-5.1.1 → PyIBIS-AMI-5.1.3}/src/pyibisami/ami/__init__.py +0 -0
- {PyIBIS-AMI-5.1.1 → PyIBIS-AMI-5.1.3}/src/pyibisami/ami/generic.ami.em +0 -0
- {PyIBIS-AMI-5.1.1 → PyIBIS-AMI-5.1.3}/src/pyibisami/ami/generic.ibs.em +0 -0
- {PyIBIS-AMI-5.1.1 → PyIBIS-AMI-5.1.3}/src/pyibisami/ami/parameter.py +0 -0
- {PyIBIS-AMI-5.1.1 → PyIBIS-AMI-5.1.3}/src/pyibisami/ibis/__init__.py +0 -0
- {PyIBIS-AMI-5.1.1 → PyIBIS-AMI-5.1.3}/src/pyibisami/tools/__init__.py +0 -0
- {PyIBIS-AMI-5.1.1 → PyIBIS-AMI-5.1.3}/src/pyibisami/tools/run_tests.py +0 -0
- {PyIBIS-AMI-5.1.1 → PyIBIS-AMI-5.1.3}/src/pyibisami/tools/test_results.xsl +0 -0
- {PyIBIS-AMI-5.1.1 → PyIBIS-AMI-5.1.3}/tests/test_run_tests.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: PyIBIS-AMI
|
|
3
|
-
Version: 5.1.
|
|
3
|
+
Version: 5.1.3
|
|
4
4
|
Summary: Facilitates working directly with IBIS-AMI DLLs from the Python command prompt.
|
|
5
5
|
Author: David Patterson
|
|
6
6
|
Author-email: David Banas <capn.freako@gmail.com>
|
|
@@ -42,7 +42,7 @@ command line applications.
|
|
|
42
42
|
It can be installed via `conda`. PyPi support is experimental but can be installed with
|
|
43
43
|
`pip install PyIBIS-AMI`.
|
|
44
44
|
|
|
45
|
-
[View API/Developer's Documentation.](https://
|
|
45
|
+
[View API/Developer's Documentation.](https://pyibis-ami.readthedocs.io/en/latest/)
|
|
46
46
|
|
|
47
47
|
## Command Line Tools
|
|
48
48
|
|
|
@@ -9,7 +9,7 @@ command line applications.
|
|
|
9
9
|
It can be installed via `conda`. PyPi support is experimental but can be installed with
|
|
10
10
|
`pip install PyIBIS-AMI`.
|
|
11
11
|
|
|
12
|
-
[View API/Developer's Documentation.](https://
|
|
12
|
+
[View API/Developer's Documentation.](https://pyibis-ami.readthedocs.io/en/latest/)
|
|
13
13
|
|
|
14
14
|
## Command Line Tools
|
|
15
15
|
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
pyibisami.ami
|
|
2
|
+
=============
|
|
3
|
+
|
|
4
|
+
AMI related submodules in the *PyIBIS-AMI* package.
|
|
5
|
+
|
|
6
|
+
config
|
|
7
|
+
------
|
|
8
|
+
|
|
9
|
+
.. automodule:: pyibisami.ami.config
|
|
10
|
+
|
|
11
|
+
model
|
|
12
|
+
-----
|
|
13
|
+
|
|
14
|
+
.. automodule:: pyibisami.ami.model
|
|
15
|
+
|
|
16
|
+
parameter
|
|
17
|
+
---------
|
|
18
|
+
|
|
19
|
+
.. automodule:: pyibisami.ami.parameter
|
|
20
|
+
|
|
21
|
+
parser
|
|
22
|
+
------
|
|
23
|
+
|
|
24
|
+
.. automodule:: pyibisami.ami.parser
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# -*- coding: utf-8 -*-
|
|
2
2
|
#
|
|
3
|
-
#
|
|
3
|
+
# PyIBIS-AMI Developer Guide documentation build configuration file, created by
|
|
4
4
|
# sphinx-quickstart on Tue Feb 10 10:04:12 2015.
|
|
5
5
|
#
|
|
6
6
|
# This file is execfile()d with the current directory set to its
|
|
@@ -18,20 +18,44 @@ import sys
|
|
|
18
18
|
# If extensions (or modules to document with autodoc) are in another directory,
|
|
19
19
|
# add these directories to sys.path here. If the directory is relative to the
|
|
20
20
|
# documentation root, use os.path.abspath to make it absolute, like shown here.
|
|
21
|
-
|
|
21
|
+
sys.path.insert(0, os.path.abspath("../../src"))
|
|
22
22
|
|
|
23
23
|
# -- General configuration ------------------------------------------------
|
|
24
24
|
|
|
25
|
-
# dbanas-2015_02_14
|
|
26
|
-
autoclass_content = "both"
|
|
27
|
-
|
|
28
25
|
# If your documentation needs a minimal Sphinx version, state it here.
|
|
29
26
|
# needs_sphinx = '1.0'
|
|
30
27
|
|
|
31
28
|
# Add any Sphinx extension module names here, as strings. They can be
|
|
32
29
|
# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
|
|
33
30
|
# ones.
|
|
34
|
-
extensions = [
|
|
31
|
+
extensions = [
|
|
32
|
+
"sphinx.ext.autodoc",
|
|
33
|
+
"sphinx.ext.viewcode",
|
|
34
|
+
"sphinx.ext.napoleon",
|
|
35
|
+
"sphinx.ext.coverage",
|
|
36
|
+
"sphinx.ext.todo",
|
|
37
|
+
# "sphinx.ext.autosummary",
|
|
38
|
+
"m2r2",
|
|
39
|
+
]
|
|
40
|
+
autodoc_default_options = {
|
|
41
|
+
"undoc-members": True,
|
|
42
|
+
"inherited-members": False,
|
|
43
|
+
"show-inheritance": True,
|
|
44
|
+
"members": True,
|
|
45
|
+
"exclude-members": "default_traits_view",
|
|
46
|
+
}
|
|
47
|
+
autodoc_mock_imports = [
|
|
48
|
+
"chaco",
|
|
49
|
+
"click",
|
|
50
|
+
"em",
|
|
51
|
+
"enable",
|
|
52
|
+
"matplotlib",
|
|
53
|
+
"numpy",
|
|
54
|
+
"traits",
|
|
55
|
+
"traitsui",
|
|
56
|
+
]
|
|
57
|
+
autoclass_content = "both"
|
|
58
|
+
autodata_content = "both"
|
|
35
59
|
|
|
36
60
|
# Add any paths that contain templates here, relative to this directory.
|
|
37
61
|
templates_path = ["_templates"]
|
|
@@ -45,18 +69,21 @@ source_suffix = ".rst"
|
|
|
45
69
|
# The master toctree document.
|
|
46
70
|
master_doc = "index"
|
|
47
71
|
|
|
48
|
-
#
|
|
49
|
-
|
|
72
|
+
# -- Project information -----------------------------------------------------
|
|
73
|
+
# https://www.sphinx-doc.org/en/master/usage/configuration.html#project-information
|
|
74
|
+
project = "PyIBIS-AMI User's Guide"
|
|
50
75
|
copyright = "2015, David Banas"
|
|
76
|
+
author = "David Banas"
|
|
77
|
+
release = "v5.1.3"
|
|
51
78
|
|
|
52
79
|
# The version info for the project you're documenting, acts as replacement for
|
|
53
80
|
# |version| and |release|, also used in various other places throughout the
|
|
54
81
|
# built documents.
|
|
55
82
|
#
|
|
56
83
|
# The short X.Y version.
|
|
57
|
-
version = "
|
|
84
|
+
version = "5.1"
|
|
58
85
|
# The full version, including alpha/beta/rc tags.
|
|
59
|
-
release = "
|
|
86
|
+
release = "5.1.3"
|
|
60
87
|
|
|
61
88
|
# The language for content autogenerated by Sphinx. Refer to documentation
|
|
62
89
|
# for a list of supported languages.
|
|
@@ -73,7 +100,7 @@ language = "en"
|
|
|
73
100
|
|
|
74
101
|
# List of patterns, relative to source directory, that match files and
|
|
75
102
|
# directories to ignore when looking for source files.
|
|
76
|
-
exclude_patterns = []
|
|
103
|
+
exclude_patterns = ["_build", "Thumbs.db", ".DS_Store"]
|
|
77
104
|
|
|
78
105
|
# The reST default role (used for this markup: `text`) to use for all
|
|
79
106
|
# documents.
|
|
@@ -101,10 +128,12 @@ pygments_style = "sphinx"
|
|
|
101
128
|
|
|
102
129
|
|
|
103
130
|
# -- Options for HTML output ----------------------------------------------
|
|
131
|
+
# https://www.sphinx-doc.org/en/master/usage/configuration.html#options-for-html-output
|
|
104
132
|
|
|
105
133
|
# The theme to use for HTML and HTML Help pages. See the documentation for
|
|
106
134
|
# a list of builtin themes.
|
|
107
|
-
html_theme = "
|
|
135
|
+
html_theme = "sphinx_rtd_theme"
|
|
136
|
+
todo_include_todos = True
|
|
108
137
|
|
|
109
138
|
# Theme options are theme-specific and customize the look and feel of a theme
|
|
110
139
|
# further. For a list of options available for each theme, see the
|
|
@@ -196,27 +225,27 @@ html_static_path = ["_static"]
|
|
|
196
225
|
# html_search_scorer = 'scorer.js'
|
|
197
226
|
|
|
198
227
|
# Output file base name for HTML help builder.
|
|
199
|
-
htmlhelp_basename = "PyIBIS-
|
|
228
|
+
htmlhelp_basename = "PyIBIS-AMIUserGuidedoc"
|
|
200
229
|
|
|
201
230
|
# -- Options for LaTeX output ---------------------------------------------
|
|
202
231
|
|
|
203
|
-
latex_elements = {
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
}
|
|
232
|
+
# latex_elements = {
|
|
233
|
+
# The paper size ('letterpaper' or 'a4paper').
|
|
234
|
+
#'papersize': 'letterpaper',
|
|
235
|
+
# The font size ('10pt', '11pt' or '12pt').
|
|
236
|
+
#'pointsize': '10pt',
|
|
237
|
+
# Additional stuff for the LaTeX preamble.
|
|
238
|
+
#'preamble': '',
|
|
239
|
+
# Latex figure (float) alignment
|
|
240
|
+
#'figure_align': 'htbp',
|
|
241
|
+
# }
|
|
213
242
|
|
|
214
243
|
# Grouping the document tree into LaTeX files. List of tuples
|
|
215
244
|
# (source start file, target name, title,
|
|
216
245
|
# author, documentclass [howto, manual, or own class]).
|
|
217
|
-
latex_documents = [
|
|
218
|
-
|
|
219
|
-
]
|
|
246
|
+
# latex_documents = [
|
|
247
|
+
# ("index", "PyIBIS-AMIDeveloperGuide.tex", "PyIBIS-AMI Developer Guide Documentation", "David Banas", "manual"),
|
|
248
|
+
# ]
|
|
220
249
|
|
|
221
250
|
# The name of an image file (relative to this directory) to place at the top of
|
|
222
251
|
# the title page.
|
|
@@ -243,7 +272,7 @@ latex_documents = [
|
|
|
243
272
|
|
|
244
273
|
# One entry per manual page. List of tuples
|
|
245
274
|
# (source start file, name, description, authors, manual section).
|
|
246
|
-
man_pages = [("index", "pyibis-amideveloperguide", "PyIBIS-AMI Developer Guide Documentation", ["David Banas"], 1)]
|
|
275
|
+
# man_pages = [("index", "pyibis-amideveloperguide", "PyIBIS-AMI Developer Guide Documentation", ["David Banas"], 1)]
|
|
247
276
|
|
|
248
277
|
# If true, show URL addresses after external links.
|
|
249
278
|
# man_show_urls = False
|
|
@@ -254,17 +283,17 @@ man_pages = [("index", "pyibis-amideveloperguide", "PyIBIS-AMI Developer Guide D
|
|
|
254
283
|
# Grouping the document tree into Texinfo files. List of tuples
|
|
255
284
|
# (source start file, target name, title, author,
|
|
256
285
|
# dir menu entry, description, category)
|
|
257
|
-
texinfo_documents = [
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
]
|
|
286
|
+
# texinfo_documents = [
|
|
287
|
+
# (
|
|
288
|
+
# "index",
|
|
289
|
+
# "PyIBIS-AMIDeveloperGuide",
|
|
290
|
+
# "PyIBIS-AMI Developer Guide Documentation",
|
|
291
|
+
# "David Banas",
|
|
292
|
+
# "PyIBIS-AMIDeveloperGuide",
|
|
293
|
+
# "One line description of project.",
|
|
294
|
+
# "Miscellaneous",
|
|
295
|
+
# ),
|
|
296
|
+
# ]
|
|
268
297
|
|
|
269
298
|
# Documents to append as an appendix to all manuals.
|
|
270
299
|
# texinfo_appendices = []
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
pyibisami.ibis
|
|
2
|
+
==============
|
|
3
|
+
|
|
4
|
+
IBIS related submodules in the *PyIBIS-AMI* package.
|
|
5
|
+
|
|
6
|
+
file
|
|
7
|
+
----
|
|
8
|
+
|
|
9
|
+
.. automodule:: pyibisami.ibis.file
|
|
10
|
+
|
|
11
|
+
model
|
|
12
|
+
-----
|
|
13
|
+
|
|
14
|
+
.. automodule:: pyibisami.ibis.model
|
|
15
|
+
|
|
16
|
+
parser
|
|
17
|
+
------
|
|
18
|
+
|
|
19
|
+
.. automodule:: pyibisami.ibis.parser
|
|
@@ -3,12 +3,10 @@
|
|
|
3
3
|
You can adapt this file completely to your liking, but it should at least
|
|
4
4
|
contain the root `toctree` directive.
|
|
5
5
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
===========================================
|
|
6
|
+
*PyIBIS-AMI* API User's Guide
|
|
7
|
+
==============================
|
|
9
8
|
|
|
10
|
-
Welcome to the *PyIBIS-AMI
|
|
11
|
-
==============================================
|
|
9
|
+
Welcome to the *PyIBIS-AMI* API user's documentation!
|
|
12
10
|
|
|
13
11
|
Contents
|
|
14
12
|
--------
|
|
@@ -16,11 +14,11 @@ Contents
|
|
|
16
14
|
.. toctree::
|
|
17
15
|
:maxdepth: 2
|
|
18
16
|
|
|
19
|
-
|
|
17
|
+
install
|
|
20
18
|
modules
|
|
21
19
|
|
|
22
20
|
Indices and tables
|
|
23
|
-
|
|
21
|
+
------------------
|
|
24
22
|
|
|
25
23
|
* :ref:`genindex`
|
|
26
24
|
* :ref:`modindex`
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
Installation Instructions
|
|
2
|
+
=========================
|
|
3
|
+
|
|
4
|
+
Installation into system Python environment
|
|
5
|
+
-------------------------------------------
|
|
6
|
+
|
|
7
|
+
If you don't mind installing *PyIBIS-AMI* into your system Python package library then installation is as simple as:
|
|
8
|
+
|
|
9
|
+
`pip install pyibis-ami`
|
|
10
|
+
|
|
11
|
+
Installation into custom virtual Python environment
|
|
12
|
+
---------------------------------------------------
|
|
13
|
+
|
|
14
|
+
If, instead, you'd prefer to confine the *PyIBIS-AMI* package to a virtual environment, thus protecting your system Python installation from it, then execute these commands, in order:
|
|
15
|
+
|
|
16
|
+
1. `python3 -m venv ~/.venv/pyibisami` (Creates a new Python virtual environment named "pyibisami".)
|
|
17
|
+
|
|
18
|
+
2. `. ~/.venv/pyibisami/bin/activate` (on Windows: `. ~/.venv/pyibisami/Scripts/activate`) (Activates the new environment.)
|
|
19
|
+
|
|
20
|
+
- At this point, you should begin seeing "(pyibisami)" at the beginning of your command prompt, indicating that you have activated your `pyibisami` Python virtual environment activated.
|
|
21
|
+
|
|
22
|
+
3. `pip install pyibis-ami` (Installs the *PyIBIS-AMI* package into your new virtual environment.)
|
|
23
|
+
|
|
24
|
+
Testing the installation
|
|
25
|
+
------------------------
|
|
26
|
+
|
|
27
|
+
Either way, as a check on correct installation, run the following command:
|
|
28
|
+
|
|
29
|
+
`python -c "import pyibisami"`
|
|
30
|
+
|
|
31
|
+
And if you don't get a traceback/error then you've installed the package successfully!
|
|
@@ -5,7 +5,7 @@ build-backend = "setuptools.build_meta"
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "PyIBIS-AMI"
|
|
7
7
|
description = "Facilitates working directly with IBIS-AMI DLLs from the Python command prompt."
|
|
8
|
-
version = "5.1.
|
|
8
|
+
version = "5.1.3"
|
|
9
9
|
authors = [ {name = "David Banas", email = "capn.freako@gmail.com"}
|
|
10
10
|
, {name = "David Patterson"}
|
|
11
11
|
]
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: PyIBIS-AMI
|
|
3
|
-
Version: 5.1.
|
|
3
|
+
Version: 5.1.3
|
|
4
4
|
Summary: Facilitates working directly with IBIS-AMI DLLs from the Python command prompt.
|
|
5
5
|
Author: David Patterson
|
|
6
6
|
Author-email: David Banas <capn.freako@gmail.com>
|
|
@@ -42,7 +42,7 @@ command line applications.
|
|
|
42
42
|
It can be installed via `conda`. PyPi support is experimental but can be installed with
|
|
43
43
|
`pip install PyIBIS-AMI`.
|
|
44
44
|
|
|
45
|
-
[View API/Developer's Documentation.](https://
|
|
45
|
+
[View API/Developer's Documentation.](https://pyibis-ami.readthedocs.io/en/latest/)
|
|
46
46
|
|
|
47
47
|
## Command Line Tools
|
|
48
48
|
|
|
@@ -2,10 +2,13 @@ LICENSE
|
|
|
2
2
|
MANIFEST.in
|
|
3
3
|
README.md
|
|
4
4
|
pyproject.toml
|
|
5
|
+
docs/source/ami.rst
|
|
5
6
|
docs/source/conf.py
|
|
7
|
+
docs/source/ibis.rst
|
|
6
8
|
docs/source/index.rst
|
|
7
|
-
docs/source/
|
|
9
|
+
docs/source/install.rst
|
|
8
10
|
docs/source/modules.rst
|
|
11
|
+
docs/source/tools.rst
|
|
9
12
|
examples/all_taps.run
|
|
10
13
|
examples/bandwidth.run
|
|
11
14
|
examples/dummy.em
|
|
@@ -6,14 +6,17 @@ Original author: David Banas
|
|
|
6
6
|
|
|
7
7
|
Original date: February 26, 2016
|
|
8
8
|
|
|
9
|
+
Copyright (c) 2016 David Banas; all rights reserved World wide.
|
|
10
|
+
|
|
9
11
|
This script gets called from a makefile, when any of the following need rebuilding:
|
|
10
12
|
|
|
11
13
|
* a C++ source code file
|
|
12
14
|
* a ``*.AMI`` file
|
|
13
15
|
* a ``*.IBS`` file
|
|
16
|
+
* a ``*.TST`` file (a dummy place-holder indicating that the test run config. files have been made)
|
|
14
17
|
|
|
15
|
-
All
|
|
16
|
-
(We rebuild all
|
|
18
|
+
All files will be rebuilt.
|
|
19
|
+
(We rebuild all files, because it doesn't take very long, and we can
|
|
17
20
|
insure consistency this way.)
|
|
18
21
|
|
|
19
22
|
This gets triggered by one of two things:
|
|
@@ -21,11 +24,9 @@ This gets triggered by one of two things:
|
|
|
21
24
|
#. The common model configuration information has changed, or
|
|
22
25
|
#. One of the EmPy template files was updated.
|
|
23
26
|
|
|
24
|
-
The idea
|
|
25
|
-
|
|
26
|
-
file, so as to ensure consistency between
|
|
27
|
-
|
|
28
|
-
Copyright (c) 2016 David Banas; all rights reserved World wide.
|
|
27
|
+
The idea here is that the ``*.IBS`` file, the ``*.AMI`` file, the C++ source file,
|
|
28
|
+
and the test run configuration files should be configured from a common model
|
|
29
|
+
configuration file, so as to ensure consistency between them all.
|
|
29
30
|
"""
|
|
30
31
|
import importlib.util
|
|
31
32
|
from datetime import date
|
|
@@ -116,20 +117,16 @@ def print_code(pname, param):
|
|
|
116
117
|
print(" ", "node_names.pop_back();")
|
|
117
118
|
|
|
118
119
|
|
|
119
|
-
def
|
|
120
|
-
"""
|
|
121
|
-
cpp
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
# Read model configuration information.
|
|
125
|
-
print(f"Reading model configuration information from file: {py_file}.")
|
|
126
|
-
spec = importlib.util.spec_from_file_location(file_base_name, py_file)
|
|
127
|
-
cfg = importlib.util.module_from_spec(spec)
|
|
128
|
-
spec.loader.exec_module(cfg)
|
|
120
|
+
def mk_model(ibis_params, ami_params, model_name, description, out_dir="."):
|
|
121
|
+
"""
|
|
122
|
+
Generate ibis, ami, and cpp files, by merging the
|
|
123
|
+
device specific parameterization with the templates.
|
|
124
|
+
"""
|
|
129
125
|
|
|
130
|
-
|
|
126
|
+
py_file = (Path(out_dir).resolve() / model_name).with_suffix(".py")
|
|
127
|
+
# Configure the model files.
|
|
131
128
|
for ext in ["cpp", "ami", "ibs"]:
|
|
132
|
-
out_file =
|
|
129
|
+
out_file = py_file.with_suffix(f".{ext}")
|
|
133
130
|
if ext == "ami":
|
|
134
131
|
em_file = Path(__file__).parent.joinpath("generic.ami.em")
|
|
135
132
|
elif ext == "ibs":
|
|
@@ -142,11 +139,11 @@ def ami_config(py_file):
|
|
|
142
139
|
interpreter = em.Interpreter(
|
|
143
140
|
output=out_file,
|
|
144
141
|
globals={
|
|
145
|
-
"ami_params":
|
|
146
|
-
"ibis_params":
|
|
142
|
+
"ami_params": ami_params,
|
|
143
|
+
"ibis_params": ibis_params,
|
|
147
144
|
"param_types": param_types,
|
|
148
|
-
"model_name":
|
|
149
|
-
"description":
|
|
145
|
+
"model_name": model_name,
|
|
146
|
+
"description": description,
|
|
150
147
|
"date": str(date.today()),
|
|
151
148
|
},
|
|
152
149
|
)
|
|
@@ -156,10 +153,93 @@ def ami_config(py_file):
|
|
|
156
153
|
interpreter.shutdown()
|
|
157
154
|
|
|
158
155
|
|
|
156
|
+
def ami_config(py_file):
|
|
157
|
+
"""
|
|
158
|
+
Read in the ``py_file`` and cpp.em files,
|
|
159
|
+
then generate: ibis, ami, and cpp files.
|
|
160
|
+
"""
|
|
161
|
+
|
|
162
|
+
file_base_name = Path(py_file).stem
|
|
163
|
+
|
|
164
|
+
# Read model configuration information.
|
|
165
|
+
print(f"Reading model configuration information from file: {py_file}.")
|
|
166
|
+
spec = importlib.util.spec_from_file_location(file_base_name, py_file)
|
|
167
|
+
cfg = importlib.util.module_from_spec(spec)
|
|
168
|
+
spec.loader.exec_module(cfg)
|
|
169
|
+
|
|
170
|
+
mk_model(cfg.ibis_params, cfg.ami_params, cfg.kFileBaseName, cfg.kDescription, out_dir=Path(py_file).parent)
|
|
171
|
+
|
|
172
|
+
|
|
173
|
+
def mk_combs(dict_items):
|
|
174
|
+
"""Make all combinations possible from a list of dictionary items.
|
|
175
|
+
|
|
176
|
+
Args:
|
|
177
|
+
dict_items([(str, [T])]): List of dictionary key/value pairs.
|
|
178
|
+
The values are lists.
|
|
179
|
+
|
|
180
|
+
Return:
|
|
181
|
+
[[(str, T)]]: List of all possible combinations of key values.
|
|
182
|
+
"""
|
|
183
|
+
if not dict_items:
|
|
184
|
+
return [
|
|
185
|
+
[],
|
|
186
|
+
]
|
|
187
|
+
head, *tail = dict_items
|
|
188
|
+
k, vs = head
|
|
189
|
+
kvals = [(k, v) for v in vs]
|
|
190
|
+
return [[kval] + l for kval in kvals for l in mk_combs(tail)]
|
|
191
|
+
|
|
192
|
+
|
|
193
|
+
def mk_tests(test_defs, file_base_name, test_dir="test_runs"):
|
|
194
|
+
"""Make the test run configuration files."""
|
|
195
|
+
|
|
196
|
+
pname = Path(test_dir).resolve()
|
|
197
|
+
pname.mkdir(exist_ok=True)
|
|
198
|
+
pname = (pname / file_base_name).resolve()
|
|
199
|
+
pname.mkdir(exist_ok=True)
|
|
200
|
+
for fname in test_defs.keys():
|
|
201
|
+
desc, ami_defs, sim_defs, ref_fstr = test_defs[fname]
|
|
202
|
+
ami_str, ami_dict = ami_defs
|
|
203
|
+
sim_str, sim_dict = sim_defs
|
|
204
|
+
with open((pname / fname).with_suffix(".run"), "w", encoding="utf-8") as f:
|
|
205
|
+
f.write(desc + "\n")
|
|
206
|
+
for ami_comb in mk_combs(ami_dict.items()):
|
|
207
|
+
for sim_comb in mk_combs(sim_dict.items()):
|
|
208
|
+
try:
|
|
209
|
+
pdict = dict(ami_comb)
|
|
210
|
+
pdict.update(dict(sim_comb))
|
|
211
|
+
f.write(f"\n('{ami_str.format(pdict=pdict)}_{sim_str.format(pdict=pdict)}', \\\n")
|
|
212
|
+
except:
|
|
213
|
+
print(f"ami_str: {ami_str}")
|
|
214
|
+
print(f"sim_str: {sim_str}")
|
|
215
|
+
print(f"pdict: {pdict}")
|
|
216
|
+
raise
|
|
217
|
+
f.write(f" ({{'root_name': '{file_base_name}', \\\n")
|
|
218
|
+
for k, v in ami_comb:
|
|
219
|
+
f.write(f" '{k}': {v}, \\\n")
|
|
220
|
+
f.write(" }, \\\n")
|
|
221
|
+
if sim_comb:
|
|
222
|
+
head, *tail = sim_comb
|
|
223
|
+
k, v = head
|
|
224
|
+
f.write(f" {{'{k}': {v}, \\\n")
|
|
225
|
+
for k, v in tail:
|
|
226
|
+
f.write(f" '{k}': {v}, \\\n")
|
|
227
|
+
f.write(" } \\\n")
|
|
228
|
+
f.write(" ), \\\n")
|
|
229
|
+
if ref_fstr:
|
|
230
|
+
f.write(f" '{ref_fstr.format(pdict=pdict)}', \\\n")
|
|
231
|
+
f.write(")\n")
|
|
232
|
+
|
|
233
|
+
|
|
234
|
+
# NOTE: The following is deprecated! Instead, make your model configurator executable
|
|
235
|
+
# and import what you need from this module. This is much cleaner.
|
|
159
236
|
@click.command(context_settings=dict(help_option_names=["-h", "--help"]))
|
|
160
237
|
@click.argument("py_file", type=click.Path(exists=True, resolve_path=True))
|
|
238
|
+
@click.option(
|
|
239
|
+
"-d", "--test_dir", show_default=True, default="test_runs", help="Output directory for test run generation."
|
|
240
|
+
)
|
|
161
241
|
@click.version_option()
|
|
162
|
-
def main(py_file):
|
|
242
|
+
def main(py_file, **kwd_args):
|
|
163
243
|
"""Configure IBIS-AMI model C++ source code, IBIS model, and AMI file.
|
|
164
244
|
|
|
165
245
|
This command generates three files based off the input config file.
|
|
@@ -6,6 +6,7 @@ Original Date: July 3, 2012
|
|
|
6
6
|
|
|
7
7
|
Copyright (c) 2019 David Banas; All rights reserved World wide.
|
|
8
8
|
"""
|
|
9
|
+
|
|
9
10
|
import copy as cp
|
|
10
11
|
from ctypes import CDLL, byref, c_char_p, c_double
|
|
11
12
|
from pathlib import Path
|
|
@@ -215,7 +216,12 @@ class AMIModel:
|
|
|
215
216
|
"""
|
|
216
217
|
|
|
217
218
|
def __init__(self, filename):
|
|
218
|
-
"""
|
|
219
|
+
"""
|
|
220
|
+
Load the dll and bind the 3 AMI functions.
|
|
221
|
+
|
|
222
|
+
Args:
|
|
223
|
+
filename(str): The DLL/SO file name.
|
|
224
|
+
"""
|
|
219
225
|
|
|
220
226
|
self._ami_mem_handle = None
|
|
221
227
|
my_dll = CDLL(filename)
|
|
@@ -7,8 +7,8 @@ Original Date: November 1, 2019
|
|
|
7
7
|
For information regarding the IBIS modeling standard, visit:
|
|
8
8
|
https://ibis.org/
|
|
9
9
|
|
|
10
|
-
|
|
11
|
-
other IBIS-related classes, defined in the ``
|
|
10
|
+
**Note:** The ``IBISModel`` class, defined here, needs to be kept separate from the
|
|
11
|
+
other IBIS-related classes, defined in the ``model`` module, in order to
|
|
12
12
|
avoid circular imports.
|
|
13
13
|
|
|
14
14
|
Copyright (c) 2019 by David Banas; All rights reserved World wide.
|
|
@@ -103,7 +103,7 @@ class IBISModel(HasTraits):
|
|
|
103
103
|
ibis_file_name (str): The name of the IBIS file.
|
|
104
104
|
is_tx (bool): True if this is a Tx model.
|
|
105
105
|
|
|
106
|
-
|
|
106
|
+
Keyword Args:
|
|
107
107
|
debug (bool): Output debugging info to console when true.
|
|
108
108
|
Default = False
|
|
109
109
|
gui (bool): Set to `False` for command line and/or script usage.
|
|
@@ -164,6 +164,7 @@ class IBISModel(HasTraits):
|
|
|
164
164
|
return f"IBIS Model '{self._model_dict['file_name']}'"
|
|
165
165
|
|
|
166
166
|
def info(self):
|
|
167
|
+
"""Basic information about the IBIS model."""
|
|
167
168
|
res = ""
|
|
168
169
|
try:
|
|
169
170
|
for k in ["ibis_ver", "file_name", "file_rev"]:
|
|
@@ -25,7 +25,7 @@ class Component(HasTraits):
|
|
|
25
25
|
def __init__(self, subDict):
|
|
26
26
|
"""
|
|
27
27
|
Args:
|
|
28
|
-
subDict
|
|
28
|
+
subDict(dict): Dictionary of [Component] sub-keywords/params.
|
|
29
29
|
"""
|
|
30
30
|
|
|
31
31
|
# Super-class initialization is ABSOLUTELY NECESSARY, in order
|
|
@@ -50,7 +50,7 @@ def logf(p, preStr=""):
|
|
|
50
50
|
Args:
|
|
51
51
|
p (Parser): The original parser.
|
|
52
52
|
|
|
53
|
-
|
|
53
|
+
Keyword Args:
|
|
54
54
|
preStr (str): A prefix string to use in failure message.
|
|
55
55
|
(Default = <empty string>)
|
|
56
56
|
"""
|
|
@@ -472,7 +472,7 @@ def parse_ibis_file(ibis_file_contents_str, debug=False):
|
|
|
472
472
|
Args:
|
|
473
473
|
ibis_file_contents_str (str): The contents of the IBIS file, as a single string.
|
|
474
474
|
|
|
475
|
-
|
|
475
|
+
Keyword Args:
|
|
476
476
|
debug (bool): Output debugging info to console when true.
|
|
477
477
|
Default = False
|
|
478
478
|
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
Modules in *pyibisami* package
|
|
2
|
-
------------------------------
|
|
3
|
-
|
|
4
|
-
ami.model - IBIS-AMI model encapsulation.
|
|
5
|
-
*****************************************
|
|
6
|
-
|
|
7
|
-
.. automodule:: pyibisami.ami.model
|
|
8
|
-
:members:
|
|
9
|
-
|
|
10
|
-
ami.parameter - IBIS-AMI parameter encapsulation.
|
|
11
|
-
*************************************************
|
|
12
|
-
|
|
13
|
-
.. automodule:: pyibisami.ami.parameter
|
|
14
|
-
:members:
|
|
15
|
-
|
|
16
|
-
ami.parse - AMI file parsing utilities.
|
|
17
|
-
***************************************
|
|
18
|
-
|
|
19
|
-
.. automodule:: pyibisami.ami.parser
|
|
20
|
-
:members:
|
|
21
|
-
|
|
22
|
-
ami.config - Automatic configuration of: IBIS, AMI, and DLL/SO files, from Python configuration file.
|
|
23
|
-
*****************************************************************************************************
|
|
24
|
-
|
|
25
|
-
.. automodule:: pyibisami.ami.config
|
|
26
|
-
:members:
|
|
27
|
-
|
|
28
|
-
ibis.file - Encapsulation of an IBIS model file.
|
|
29
|
-
************************************************
|
|
30
|
-
|
|
31
|
-
.. automodule:: pyibisami.ibis.file
|
|
32
|
-
:members:
|
|
33
|
-
|
|
34
|
-
ibis.model - Encapsulation of IBIS *Component* and *Model* keywords.
|
|
35
|
-
********************************************************************
|
|
36
|
-
|
|
37
|
-
.. automodule:: pyibisami.ibis.model
|
|
38
|
-
:members:
|
|
39
|
-
|
|
40
|
-
ibis.parser - *Parsec* based parser for IBIS model files.
|
|
41
|
-
*********************************************************
|
|
42
|
-
|
|
43
|
-
.. automodule:: pyibisami.ibis.parser
|
|
44
|
-
:members:
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|