Git Product home page Git Product logo

constraint-manager's Introduction

Gitter

Constraint Manager

A simple yaml-based tool for generating sdc interface constraints. No math involved!

Installation

Prerequisites:

setuptools

Python>=3.6

To install the module

python setup.py install

Usage

For immediate usage, try:

constraint-manager generate sample

This will use a sample interface, part, and design to generate some constraints (not yet validated) and just print them to the console.

An example flow for generating your own interface, part and design:

constraint-manager create interface test
constraint-manager create part test --interfaces test
constraint-manager create design test --interfaces test

Manually edit constraint_manager_out/designs/test_test.yaml to say part: test

constraint-manager generate test

The generated constraints will be empty, but this shows the flow and you can manually modify the yaml's to your liking to try out something new - be sure to regenerate parts and designs after modifying an interface.

Ideally, all local repositories will be merged back upstream to store them in the tool. This is where the real benefit of it comes into play.

Goals

Provide an easy to use tool that requires minimal user input when constraining a design and reduce human error significantly.

Current State

All but mult_path constraints implemented

Can create, list, and generate from cli

Sample design/interface/part (not accurate) provided to generate output

TODO

  • Validate constraint equations

  • Get real example to see if numbers match up

  • Improve unit testing

  • Get ease of use input from others, especially with the variable substitution

  • Get documentation built

  • Programmatic editing of configuration files

  • Figure out why argcomplete doesn't work

  • Better design generation - give interfaces a name, set part at creation time

  • Make it a GUI?

Development Guide

Constraint Manager uses pytest.

To test for the first time (installs required test modules):

python3.8 setup.py test

To fully use framework with all options after setup.py installs, simply use:

pytest

Contributing

I welcome any and all contributions. The tests in particular need overhauled, they are only very simple sanity checks as of now.

constraint-manager's People

Contributors

jeremiah-c-leary avatar nfrancque avatar

Watchers

 avatar  avatar

Forkers

gitter-badger

constraint-manager's Issues

Real world input

@jeremiah-c-leary This is now in a state where the full flow can be tested.
Could you provide input data for some interface, part, and design to validate the equation solving?
Feel free to suggest any changes to output format, no comments added to it yet.

We should switch to Python 3.8

Python 2.7 is being End Of Lifed at the end of the year. With this being a new project we should start with the latest version of Python.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.