Skip to main content

Bulk Data Python Package

https://img.shields.io/pypi/v/bulkdata.svg https://img.shields.io/travis/marcodlk/bulkdata.svg Documentation Status Updates

Bulk Data Python Package makes it easy to create and manipulate bulk data files.

Features

  • Card objects represent Bulk Data Cards; functionally similar to list objects but can be serialized to a bulk data formatted string representing the card.

  • No explicit Bulk Data Card definitions are necessary.

  • Deck objects represent a Bulk Data “Deck” containing Bulk Data Cards that can be added, edited, or deleted.

  • Loading BDF files containing mixed formatting is supported.

  • Bulk Data Formats currently supported:
    • Fixed (same as Small in NASTRAN)

    • Free

Example

This a quick example of using the bulkdata package to update a BDF file.

from bulkdata import Deck, Card

bdf_filename = BDF_DIR + "/example.bdf"

# load Deck from BDF file
with open(bdf_filename) as bdf_file:
    deck = Deck.load(bdf_file)

# CORD2R variables
cid = 1
rid = None
a = [-2.9, 1.0, 0.0]
b = [3.6, 0.0, 1.0]
c = [5.2, 1.0, -2.9]

# create CORD2R card
cord2r = Card("CORD2R")
cord2r.append(cid)
cord2r.append(rid)
cord2r.extend(a)
cord2r.extend(b)
cord2r.extend(c)

# print the CORD2R card in fixed format (the default)
print("-- CORD2R fixed formatting --")
print(cord2r.dumps("fixed"))

# print the CORD2R card in free format
print("-- CORD2R free formatting --")
print(cord2r.dumps("free"))

# add card to the deck
deck.append(cord2r)

# get AEROZ card
aeroz = deck.find_one({"name": "AEROZ"})

print("-- AEROZ before update --")
print(aeroz.dumps())

# update the ACSID field (first one)
aeroz[0] = cid

# update mass and length units fields while we're at it
aeroz[[3, 4]] = ["N", "M"]

print("-- AEROZ after update --")
print(aeroz.dumps())

# dump Deck to update BDF file
with open(bdf_filename, "w") as f:
    deck.dump(f)

Output:

-- CORD2R fixed formatting --
CORD2R  1               -2.9    1.      0.      3.6     0.      1.      +0
+0      5.2     1.      -2.9

-- CORD2R free formatting --
CORD2R,1, ,-2.9,1.,0.,3.6,0.,1.,+0
+0,5.2,1.,-2.9

-- AEROZ before update --
AEROZ           YES     NO      SLIN    IN      400.    300     12000.  +0
+0      10.     0.      0.

-- AEROZ after update --
AEROZ   1       YES     NO      N       M       400.    300     12000.  +0
+0      10.     0.      0.

For a more detailed overview check out the documentation and/or the bulkdata-usage notebook.

TODO

  • Add support for BDF files containing INCLUDE statements.

  • Add support for Large Field entries

  • Add support for BDF files with tabs?

Credits

This package was created with Cookiecutter and the audreyr/cookiecutter-pypackage project template.

History

0.4.0 (2020-04-10)

  • First release.

0.5.3 (2020-04-14)

  • Fixes some bugs in the Card class.

  • Expanded documentation on:
    • usage

    • API
      • Card class

      • Deck class

0.6.0 (2020-04-23)

  • Sorting deck cards is now possible with Deck.sort method.

  • Dumping cards containing trailing blank fields no longer creates blank continuation lines, as trailing blank fields are ignored when converting card to string.

Release files for bulkdata 0.6.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for bulkdata 0.6.1
File Size Uploaded
bulkdata-0.6.1.tar.gz 51.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for bulkdata 0.6.1
File Interpreter ABI Platform
bulkdata-0.6.1-py2.py3-none-any.whl Python 2, Python 3 none any Details

Total release size: 74.5 kB

Release files / bulkdata-0.6.1.tar.gz

Download URL bulkdata-0.6.1.tar.gz
Size 51.7 kB
Tags Source
SHA-256 checksum
How to use checksums
c9003592474e409ab69099734e8ccbb83d19f05bce043d9cd77d4990e00de7ca
BLAKE2b-256 checksum
How to use checksums
20ec7448821478224cce48c60a2e2fe3377a2f35bf3c5805a2b5ac321e5339b4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.12.1 pkginfo/1.4.2 requests/2.19.1 setuptools/39.2.0 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/3.6.5

Release files / bulkdata-0.6.1-py2.py3-none-any.whl

Download URL bulkdata-0.6.1-py2.py3-none-any.whl
Size 22.8 kB
Tags Python 2 Python 3
SHA-256 checksum
How to use checksums
ab967770d81e459898e0a775e7dc425b5c38898bc9b02b0c06753da8b353037b
BLAKE2b-256 checksum
How to use checksums
d7f1ec9e0288210fbd8c1fd026c17cd15c0ff95738290a0619c2af47917e6400
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.12.1 pkginfo/1.4.2 requests/2.19.1 setuptools/39.2.0 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/3.6.5

Release history Release notifications | RSS feed

This release

0.6.1 This release

2 release files

0.6.0

2 release files

0.5.3

2 release files

0.5.2

2 release files

0.5.0

2 release files

0.4.0

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page