Git Product home page Git Product logo

knitlib's Introduction

knitlib

Travis-CI Build Status Documentation Status PyPI Package monthly downloads Scrutinizer Status
'Stories in Ready'

1. What is Knitlib

Knitlib is a library designed to support the operation of varied knitting machines, mechanisms, and hacks. Knitlib is based on projects like AYAB, PDD, and KnitterStream to control knitting machines. Knitlib features a plugin system for knitting machines and implements an API to control machines' operation, knitting jobs and knitting patterns. The software is based on Python. There also is a Web API. Among the primary tasks is to develop plugins based on this solution to add support for more machines.

1.1 Idea behind Knitlib

1.2 Technical Background of Knitlib

Knitlib is implemented as a Python Library and API. Each machine is supported via a Plugin, allowing for extensibility. Each of the plugins is based on a simple Finite State Machine, with states from machine initialization to operation and knitting process. Among the aplications using the Knitlib API is Knitlib-server, implementing a Webserver and REST / WebSocket endpoints. Clients can also implement message callbacks, errors, notifications and blocking messages in order to provide a good user experience.

2.Development Installation

pip install -r requirements.txt pip install knitlib

3. Usage

4. Development

To run the all tests run:

tox

5. References

6. Documentation

7. Contributing

7.1. Bug reports

Bugs can be reported via the Github issues tracker at https://github.com/fashiontec/knitlib/issues

7.2 Documentation improvements

7.3 Feature requests, Issues, and Feedback

Issues, feature requests and feedback can be reported via the Github issues tracker at https://github.com/fashiontec/knitlib/issues

7.4 Pull Request Guidelines

8. Applications using Knitlib

9. License

Free software: LGPLv3+ license

knitlib's People

Contributors

tian2992 avatar shiluka avatar mariobehling avatar andibraeu avatar waffle-iron avatar niccokunzmann avatar souravsingh avatar

Stargazers

Abhi ram avatar Shashank Kumar avatar Akash avatar Pavan Sriram Kannuri avatar Rakesh N J avatar gabby ortman avatar Mary avatar Senthil Kumar P avatar Harini_B avatar Harshita Deep avatar Yathaarth Sharma avatar Nitin Hariharan avatar Saksham Gupta avatar Rushi Kotak avatar Yagyesh Bobde avatar Gaurang Kudale avatar Ankush Singh avatar Kishar Kr Nath avatar Darshan Nere avatar Deeksha Dewangan avatar  avatar Ayishik Das avatar Pranshu Jain avatar Jaivardhan Shukla avatar Diya James  avatar Shrijal Acharya avatar Marlow avatar Jai Bhardwaj avatar Adarsh Gupta avatar Bilal Aamer avatar Vinayak Sankar avatar  avatar Aamir Ali avatar Stuck avatar  avatar Kirtika Gautam avatar R Veda shree avatar  avatar  avatar Claire Peng avatar Dev Nev avatar J. Akash Kumar Reddy avatar ThatOneKrish avatar (0*9)[9] avatar Mihir Kumar Singh avatar Asif Khan avatar  avatar Nilabja Sarkar avatar Anshuman Swain avatar Sandesh Verma avatar Kistappagari Sanketh Kumar avatar Graham avatar  avatar Ashi Gautam avatar Devanshu Saxena  avatar Shi (Brandon) Bai avatar Ina avatar Ayush Dey avatar Adarsh Mishra avatar Sumit avatar Gurleen Kaur avatar Shreeya Chatterji avatar Love Tewari avatar Priyansh Jhalora avatar Jyotirmay avatar Jaspreet Singh avatar Raghav Kumar avatar Saurav Kumar avatar Ishita Kapoor avatar Amarjargal avatar Shashank Kashyap avatar Nithin avatar Shamik avatar Neel Shah avatar Neel Raval avatar Sophiya Singh avatar Gul Jain avatar jatin choudhary avatar Ekansh Agarwal avatar Pranjal Choudhary avatar ibli avatar Devansh Mudgal avatar Rohith Raju avatar Anshuman Singh avatar Shamitha avatar Moazzam Moriani  avatar Anushka Gupta avatar Ravi Kanth Gojur avatar Chaitanya Agarwal avatar SATYAM KUMAR avatar Jay Thadeshwar avatar Shama Devi avatar Manish Swami avatar  avatar Abhay Mittal avatar Somya Agrawal avatar Adarsh kumar singh avatar MANDAR DILIP GAJBHIYE avatar Shiva smaran avatar Anirban Sinha avatar

Watchers

 avatar Mar Canet Sola avatar  avatar Kirstin Heidler avatar James Cloos avatar  avatar  avatar andz avatar  avatar  avatar  avatar Arun Sathiya avatar  avatar  avatar  avatar

knitlib's Issues

Knitlib API Version 1 beta release

A formal freeze release of API so we can start building the Web API.
Includes both Plugin API Transparent support, basic machine detection and listing. Includes Knitpat parsing library.

Pattern file integration

Tracking issue for deeper integration of knitpat format to knitlib handlers.

Aiming for

plugin.configure(knitpat_object)

useage.

Should we use a Plugin framework?

Should we use a plugin frameworks such as Yapsy or others? We can build a modular interface that does not require a plugin manager, yet is still compatible with the aim of a plugin based architecture.

I think some important questions that we need to answer are:

  • Is hot plugging important for modules? (it might only add complexity)
  • Can/should we need to deploy library versions in which support for some machines is disabled?
  • Should we force plugins to be tested as extensibility as the library (I think it is good to do so, however, it means both more testing).

Errors when calling socket callbacks functions on

Traceback (most recent call last):
  File "/usr/lib64/python2.7/threading.py", line 810, in __bootstrap_inner
    self.run()
  File "/usr/lib64/python2.7/threading.py", line 763, in run
    self.__target(*self.__args, **self.__kwargs)
  File "/home/tian/devel/knitlib-webserver/knitlib_webserver.py", line 139, in __emit_socket
    emit(ms["type"], ms["data"], namespace="/knit")
  File "/usr/lib/python2.7/site-packages/flask_socketio/__init__.py", line 444, in emit
    return request.namespace.emit(event, *args, **kwargs)
  File "/usr/lib/python2.7/site-packages/werkzeug/local.py", line 338, in __getattr__
    return getattr(self._get_current_object(), name)
  File "/usr/lib/python2.7/site-packages/werkzeug/local.py", line 297, in _get_current_object
    return self.__local()
  File "/usr/lib/python2.7/site-packages/flask/globals.py", line 20, in _lookup_req_object
    raise RuntimeError('working outside of request context')
RuntimeError: working outside of request context

PDD testing

PDD hack is not tested yet. PDD should be validated with a hardware test of knitting a small pattern.

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.