Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
48 commits
Select commit Hold shift + click to select a range
e248abe
fix: introduce cspell and fix spelling errors across codebase
KostaIlic2 Mar 6, 2026
79f3786
chore: regenerate code after spelling fixes
KostaIlic2 Mar 6, 2026
ce218c3
fix: address styleguide lint issues
KostaIlic2 Mar 6, 2026
120ad5f
chore: remove temporary mypy output file
KostaIlic2 Mar 6, 2026
dd18422
fix: remove UTF-8 BOM from cspell-ignore-words.txt
KostaIlic2 Mar 6, 2026
9f91f4c
chore: move cspell dictionaries to .cspell/ directory
KostaIlic2 Mar 6, 2026
09e695b
chore: merge cspell-ignore-words.txt into cspell-dict.txt
KostaIlic2 Mar 6, 2026
096bbde
chore: add DAQmx abbreviations dictionary and deduplicate cspell-dict
KostaIlic2 Mar 6, 2026
41addfa
chore: improve cspell configuration and dictionaries
KostaIlic2 Mar 6, 2026
9e51224
chore: switch cspell to ignorePaths-only pattern and expand scope to …
KostaIlic2 Mar 6, 2026
c9dccd3
chore: expand cspell scope to .md files and fix spelling errors
KostaIlic2 Mar 6, 2026
94d4f44
chore: replace blanket extension exclusions with specific file paths …
KostaIlic2 Mar 6, 2026
a757772
chore: sort cspell ignorePaths in VS Code Explorer order
KostaIlic2 Mar 6, 2026
bbdf4c7
chore: spell-check .env.sample and add MBCS, multibyte to dictionary
KostaIlic2 Mar 6, 2026
3a7d164
chore: spell-check .gitignore
KostaIlic2 Mar 6, 2026
8a8f88d
chore: remove redundant comments from cspell overrides
KostaIlic2 Mar 6, 2026
3603c29
chore: use consistent dictionary order in cspell overrides
KostaIlic2 Mar 6, 2026
86769b7
chore: regenerate utils.py after cspell comment style fix
KostaIlic2 Mar 6, 2026
9eddb77
chore: run cspell in CI
KostaIlic2 Mar 6, 2026
ed9a813
docs: document cspell as a required step in the contribution workflow
KostaIlic2 Mar 6, 2026
d6cf56f
chore: consolidate cspell:ignore directives in test_internationalizat…
KostaIlic2 Mar 6, 2026
2aad129
chore: remove redundant bnptdms from dictionary
KostaIlic2 Mar 8, 2026
0b65c73
refactor: rename FULLSCALE_RAW_MAX/MIN to FULL_SCALE_RAW_MAX/MIN in t…
KostaIlic2 Mar 8, 2026
46cb5ae
chore: alphabetize cspell dictionary and annotate each entry with its…
KostaIlic2 Mar 8, 2026
cc60406
chore: sort and annotate sphinx directives and mako keywords dictiona…
KostaIlic2 Mar 8, 2026
d026f33
chore: sort and annotate changelog and contributing dictionaries, add…
KostaIlic2 Mar 8, 2026
eb06e34
chore: migrate changelog and contributing word lists to inline cspell…
KostaIlic2 Mar 8, 2026
bcfe89f
chore: extend cspell to codegen/generated files; fix typos
KostaIlic2 Mar 9, 2026
e4dfdbe
chore: clean up and annotate cspell.json -> ignorePaths
KostaIlic2 Mar 9, 2026
90b4d7b
chore: extend cspell coverage to pyproject.toml
KostaIlic2 Mar 9, 2026
c543b36
chore: align ignorePaths comments in cspell.json
KostaIlic2 Mar 10, 2026
1424d7c
fix: wrap long list comprehension in stub_generator.py
KostaIlic2 Mar 10, 2026
09fea71
revert: undo _dotenv_path rename; add dotenvpath to cspell dict with …
KostaIlic2 Mar 10, 2026
37f7093
refactor: rename cfunc to c_func in _lib.py for consistency with _lib…
KostaIlic2 Mar 10, 2026
aabe703
chore: remove unused words from cspell-daqmx-abbreviations.txt
KostaIlic2 Mar 10, 2026
8b46109
chore: consolidate NI-DAQmx words into cspell-daqmx-abbreviations.txt
KostaIlic2 Mar 10, 2026
e2dd06d
chore: reorganize cspell dictionaries by purpose
KostaIlic2 Mar 10, 2026
6b6aa54
chore: move cspell:ignore comments inline in CONTRIBUTING.md
KostaIlic2 Mar 10, 2026
eafcb4c
chore: delete cspell-changelog-words and cspell-contributing-words di…
KostaIlic2 Mar 10, 2026
ec3ee75
chore: add python to global cspell dictionaries; remove redundant ove…
KostaIlic2 Mar 10, 2026
e5ac3b8
fixup! chore: Consolidate cspell dictionaries into one project dictio…
KostaIlic2 Mar 10, 2026
010ec8b
chore: rename TEDS asset files to PascalCase for consistency
KostaIlic2 Mar 10, 2026
e992c62
chore: improve cspell-real-words.txt comments; correct SMIO expansion
KostaIlic2 Mar 10, 2026
f59a2f7
chore: use cspell-action instead of npx to run cspell
KostaIlic2 Mar 10, 2026
edaa5bb
chore: move cspell config to .config/; simplify dictionary names
KostaIlic2 Mar 12, 2026
015cfa0
docs: add 1.5.0 changelog section; mention cspell under Major Changes
KostaIlic2 Mar 18, 2026
bc786ff
docs: incorporate 1.4.1 section and fix 1.5.0 PR link in changelog
KostaIlic2 Mar 18, 2026
b4dd684
Merge branch 'master' into users/kosta/cspell-one-project-dictionary
KostaIlic2 Mar 18, 2026
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
46 changes: 46 additions & 0 deletions .config/cspell.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
{
"version": "0.2",
"globRoot": "${cwd}",
// Keep the following list of items in alphabetical order.
"dictionaryDefinitions": [
{ "name": "daqmx-api-elements", "path": "./cspell/daqmx-api-elements.txt", "noSuggest": true },
{ "name": "real-words", "path": "./cspell/real-words.txt", "noSuggest": false },
{ "name": "mako-keywords", "path": "./cspell/mako-keywords.txt", "noSuggest": true },
{ "name": "project-software-terms", "path": "./cspell/project-software-terms.txt", "noSuggest": true },
{ "name": "sphinx-directives", "path": "./cspell/sphinx-directives.txt", "noSuggest": true }
],
"dictionaries": ["real-words", "daqmx-api-elements", "project-software-terms", "python"],
"useGitignore": true,
// Keep the following list of items in the order that they appear in VSCode
// Explorer (directories in alphabetical order, followed by top-level files
// in alphabetical order).
"ignorePaths": [
".config/cspell/**", // dictionary source files; words here are not prose
"docs/img/**", // binary image files
"docs/conf.py", // Sphinx config; extension names and config keys
"docs/make.bat", // Sphinx build script; not prose
"docs/Makefile", // Sphinx build script; not prose
"generated/nidaqmx/_stubs/**", // protobuf-generated stubs; too noisy to check
"tests/max_config/**", // NI MAX config files; NI-specific identifiers
"tests/test_assets/**", // test fixture files; not prose
"third_party/**", // third-party code we don't own or control
".readthedocs.yml", // ReadTheDocs config
"poetry.lock", // auto-generated lock file; hashes and package URLs
"poetry.toml", // Poetry config
"tox.ini" // tox config
],
"overrides": [
{
"filename": "**/*.mako",
"dictionaries": ["real-words", "daqmx-api-elements", "python", "mako-keywords"]
},
{
"filename": "**/*.rst",
"dictionaries": ["real-words", "daqmx-api-elements", "python", "sphinx-directives"]
},
{
"filename": "**/CONTRIBUTING.md",
"dictionaries": ["real-words"]
}
]
}
115 changes: 115 additions & 0 deletions .config/cspell/daqmx-api-elements.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,115 @@
acceld # Deprecated; see attribute_helpers.py
ACRMS # unseparated initialisms; AC RMS
AHigh # unseparated words; A high
AIAC # unseparated initialisms; AI AC
AIADC # unseparated initialisms; AI ADC
AIDC # unseparated initialisms; AI DC
AIGnd # unseparated words; AI ground
AILVDT # unseparated initialisms; AI LVDT
AIRTD # unseparated initialisms; AI RTD
AIRTDA # unseparated initialisms; AI RTD A
AIRTDB # unseparated initialisms; AI RTD B
AIRTDC # unseparated initialisms; AI RTD C
AIRTDR0 # unseparated initialisms; AI RTD R0
AIRVDT # unseparated initialisms; AI RVDT
AITEDS # unseparated initialisms; AI TEDS
anlg # abbreviation; analog
AODAC # unseparated initialisms; AO DAC
AOGnd # unseparated words; AO ground
AOHW # unseparated initialisms; AO HW
APFI # initialism; Analog Programmable Function Interface
asyn # abbreviation; asynchronous
atten # abbreviation; attenuation
attentuation # Typo; should be: attenuation
BBULK # Typo; should be USB_BULK instead of US_BBULK
BHigh # unseparated words; B high
calibrationInfo # unseparated words
CAPI # unseparated words; C API
certiticates # Typo; should be: certificates
cfgd # abbreviation; configured
cfgs # abbreviation; configurations
chans # abbreviation; channels
CIGPS # unseparated initialisms; CI GPS
CIHW # unseparated initialisms; CI HW
CITC # unseparated initialisms; CI TC
CIUTC # unseparated initialisms; CI UTC
clks # abbreviation; clocks
cmplt # abbreviation; complete
coeff # abbreviation; coefficient
coeffs # abbreviation; coefficients
COHW # unseparated initialisms; CO HW
COHWTSP # unseparated initialisms; CO HWTSP
compen # abbreviation; compensated / compensation
conv # abbreviation; convert
couldnt # abbreviation; couldn't
ctrs # abbreviation; counters
DAQError # unseparated words
descr # abbreviation; description
difft # abbreviation; different
doesnt # abbreviation; doesn't
DSTAR # for further research; stands for differential star (PXIe trigger), but we also use D_STAR
elec # abbreviation; electrical
excit # abbreviation; excitation
expir # abbreviation; expiration
exportSignal # unseparated words
fltr # abbreviation; filter
forceLb # unseparated words; force in pounds
freqOut # abbreviation; frequency output
frequencyWith # unseparated words
globalVirtualChannels # unseparated words; global virtual channels
hshk # abbreviation; handshake
HWTEDS # unseparated initialisms; HW TEDS
HWTSP # initialism; Hardware-Timed Single Point
hyst # abbreviation; hysteresis
hysts # abbreviation; hysteresis
immed # abbreviation; immediate
invalidc # Typo; should be: INVALID_CDAQ_SYNC_PORT_CONNECTION_FORMAT
IRIGB # initialism; IRIG-B
isoc # abbreviation; isochronous
lvls # abbreviation; levels
MIOAI # unseparated initialisms; MIO AI
mult # abbreviation; multiple
multiDevice # unseparated words
NIDAQ # initialism; NI-DAQ (legacy product name)
nidaqmx # NI-DAQmx package name
nonBuffered # unseparated words
notKnown # unseparated words
NRSE # initialism; Non-Referenced Single-Ended
nums # abbreviation; numbers
onbrd # abbreviation; onboard
outp # abbreviation; output
persistedChannel # unseparated words
persistedScale # unseparated words
persistedTask # unseparated words
physicalChannel # unseparated words
posssible # Typo; should be: possible
pretrig # abbreviation; pre-trigger
prpty # abbreviation; property
rangeWith # unseparated words
regen # abbreviation; regeneration
rngs # abbreviation; ranges
rqst # abbreviation; request
samp # abbreviation; sample
samps # abbreviation; samples
scanList # unseparated words
sensord # Deprecated; see attribute_helpers.py
sensitivit # Typo; should be: sensitivity
SMIO # initialism; Simultaneously-sampling Multifunction I/O
specd # abbreviation; specified
srcs # abbreviation; sources
subsytem # Typo; should be: subsystem
taskToCopy # unseparated words; task to copy
tcpip # initialism; TCP/IP
TEDSAI # unseparated initialisms; TEDS AI
TEDSAIRTD # unseparated initialisms; TEDS AI RTD
TEDSHWTEDS # unseparated initialisms; TEDS HWTEDS
thrmcpl # abbreviation; thermocouple
thrmstr # abbreviation; thermistor
timeTriggers # unseparated words
trigs # abbreviation; triggers
unavail # abbreviation; unavailable
USBDAQ # unseparated initialisms; USB DAQ
verif # abbreviation; verification
voltaged # Deprecated; see attribute_helpers.py
xfer # abbreviation; transfer
ZIdx # abbreviation; Z index
10 changes: 10 additions & 0 deletions .config/cspell/mako-keywords.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
# Mako template closing keywords for control structures (% endXXX markers).
# Mako closes each % control block with a matching % end<keyword> line.
# All seven closing keywords are included; they are all used in src/codegen/templates/.
endblock
enddef
endfor
endif
endtry
endwhile
endwith
64 changes: 64 additions & 0 deletions .config/cspell/project-software-terms.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
addoption # Dependency: pytest
allclose # Dependency: numpy
argtype # Standard library: ctypes
argtypes # Standard library: ctypes
ascontiguousarray # Dependency: numpy
autoinstall # Linux system tool names (external)
byref # Standard library: ctypes
callspec # Dependency: pytest
caplog # Dependency: pytest
cdecl # C calling convention name (used in codegen)
chkconfig # Linux system tool names (external)
codegen # codegen internals
ctypes # Standard library: ctypes
ctypeslib # Standard library: ctypes
CVICALLBACK # NI CVI calling convention macro (C interop comment)
docstrings # Python terminology
dotenv # Dependency: python-decouple / dotenv
dotenvpath # Typo - TODO - rename the files and make related changes
dpkg # Linux system tool names (external)
dtype # Dependency: numpy
fixturenames # Dependency: pytest
frombuffer # Dependency: numpy
getfixturevalue # Dependency: pytest
grpcdevice # NI package name; ni-grpcdevice
hightime # Dependency: hightime
htmlcov # Python tooling (directory/artifact names, not real words)
iinfo # Dependency: numpy
insserv # Linux system tool names (external)
installdriver # CLI command name and corresponding function
localzone # Dependency: tzlocal
matplotlib # Dependency: matplotlib
metafunc # Dependency: pytest
modifyitems # Dependency: pytest
nbytes # Dependency: numpy
ndarray # Dependency: numpy
ndpointer # Dependency: numpy
NISHAREDDIR # NI Linux install directory environment variable
nicai # NI-DAQmx C library filename (Windows DLL)
nicaiu # NI-DAQmx C library filename (Windows DLL, Unicode)
nidevice # NI package name; ni-device-grpc
nitypes # Dependency: nitypes
nptdms # Dependency: nptdms
numpy # Dependency: numpy
parametrizing # Dependency: pytest
printoptions # Dependency: numpy
protoc # Tool name: protobuf compiler
pycache # Python tooling (directory/artifact names, not real words)
pykka # Dependency: pykka
pyplot # Dependency: matplotlib
pytest # Dependency: pytest
rtol # Dependency: numpy
scrapigen # codegen internals
styleguide # ni-python-styleguide linting tool
sint # Protobuf type; signed integer
tobytes # Dependency: numpy
tolist # Dependency: numpy
typeshed # Python type stubs repository (mypy/pyright tooling)
unraisable # Dependency: pytest
unraisablehook # Dependency: pytest
ulonglong # C type: unsigned long long
varargs # Standard library: ctypes
venv # Python tooling (directory/artifact names, not real words)
xlabel # Dependency: matplotlib
ylabel # Dependency: matplotlib
76 changes: 76 additions & 0 deletions .config/cspell/real-words.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
autozero # Electronic instrumentation term
backplane # Digital electronics and computer engineering term
bandpass # Filter term
bitfield # Computing term; contiguous range of bits in a value
bitfields # Computing term; contiguous range of bits in a value
bitstream # Computing term; sequence of bits transmitted serially
brickwall # Filter term
Butterworth # Scientist name; Butterworth filter
cDAQ # CompactDAQ (NI hardware platform)
Callendar # Physicist name; Callendar-Van Dusen equation
CPLD # Complex Programmable Logic Device
DAQmx # Data Acquisition Measurement Extensions
deassert # Digital electronics and computer engineering term
deasserting # Digital electronics and computer engineering term
deasserts # Digital electronics and computer engineering term
deleters # Software term
DKMS # Dynamic Kernel Module Support
Dusen # Physicist name; Van Dusen of Callendar-Van Dusen equation
EEPROM # Electrically Erasable Programmable Read-Only Memory
HDOP # Horizontal Dilution of Precision (GPS)
highpass # Filter term
HWCU # Hardware Configuration Utility
IEPE # Integrated Electronics Piezo-Electric
IRIG # Inter-Range Instrumentation Group
jumpered # Electronics term
lowpass # Filter term
LVDT # Linear Variable Differential Transformer
LVTTL # Low Voltage Transistor-Transistor Logic
MBCS # Multi-Byte Character Set
MDNS # Multicast DNS
MeasurementLink # NI product name
micropascals # Unit of pressure
mioDAQ # NI product category
milli # SI prefix
multibyte # Computing term; character encoding using multiple bytes
NIELVIS # NI product name; NI ELVIS
nonprintable # Computing term
overcurrent # Electrical engineering term
overrange # Measurement term; signal exceeding the measurable range
overread # Data acquisition term
overtemperature # Electrical/safety term; exceeding a temperature limit
overvoltage # Electrical engineering term
PDOP # Position Dilution of Precision (GPS)
pico # SI prefix
powerline # Electrical engineering term
powerup # Electronics term
pseudodifferential # Electronics measurement term
PXIe # PCI eXtensions for Instrumentation, Express variant
ratiometric # Electronics measurement term
RDMA # Remote Direct Memory Access
readall # Software term; read all available data
reglitch # Electronics DAC term
reglitching # Electronics DAC term (gerund)
replug # Hardware term
retriggerable # Electronics term; able to be triggered again before previous cycle ends
RTSI # Real-Time System Integration
RVDT # Rotary Variable Differential Transformer
SCXI # Signal Conditioning eXtensions for Instrumentation
Steinhart # Physicist name; Steinhart-Hart thermistor equation
stopband # Filter term
subsecond # Time measurement term; less than one second
subseconds # Time measurement term; less than one second
TDMS # Technical Data Management Streaming
timebase # Electronics term; reference clock signal
timebases # Electronics term
tristated # Electronics term
tristates # Electronics term (verb/noun)
unflatten # Software term; deserialize/reconstruct nested data
unloadable # Computing term
unreserve # Software term; release a reserved resource
unreserves # Software term; release a reserved resource
VCXO # Voltage-Controlled Crystal Oscillator
VDOP # Vertical Dilution of Precision (GPS)
yoctosecond # Unit of time; SI prefix
yoctoseconds # Unit of time; SI prefix

11 changes: 11 additions & 0 deletions .config/cspell/sphinx-directives.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# Sphinx directive names and option values flagged by cspell in this project's .rst files.
# This is not an exhaustive list of Sphinx directives — only words that cspell does not
# recognize from its built-in dictionaries and that appear in docs/ are included here.
automodule
backlinks
bysource
currentmodule
genindex
modindex
toctree
undoc
5 changes: 5 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,11 @@ jobs:
install-args: "--all-extras --with examples"
- name: Run Bandit security checks
run: poetry run bandit -c pyproject.toml -r generated/nidaqmx
- name: Run cspell
uses: streetsidesoftware/cspell-action@v8
with:
incremental_files_only: false
check_dot_files: explicit
- name: Generate ni-daqmx files
if: ${{ runner.os == 'Linux' && matrix.python-version == env.codegen-python-version }}
run: |
Expand Down
Loading
Loading