DEV Community

ZigRazor
ZigRazor

Posted on

My Hacktoberfest Repos

Hacktoberfest

My Hacktoberfest Repos

👋🏻 Hi everyone, and Happy Hacktoberfest!

This is my repos ready for the Hacktoberfest:

C++

Header-Only C++ library for Graph Representation and Algorithms with a simple interface.

GitHub logo ZigRazor / CXXGraph

Header-Only C++ Library for Graph Representation and Algorithms

CXXGraph

DOI

DOI

codecov CodeFactor

GitHub license GitHub release

Generic badge Generic badge Generic badge

Generic badge Generic badge

Introduction

CXXGraph is a comprehensive C++ library that manages graph algorithms. This header-only library serves as an alternative to the Boost Graph Library (BGL).

We are Looking for...

We are looking for:

  • A Web Developer for the development of the CXXGraph website. All documentation is currently hosted on this GitHub page.
  • Developers and Contributors to provide input. If you are new to the open-source world, we will guide you step by step!

If you are interested, please contact us at zigrazor@gmail.com or contribute to this project. We are waiting for you!

Roadmap

Completed Description Date of Completition
✔️ Release 0.4.0 Oct 7, 2022
✔️ Release 0.5.0 Mar 23, 2023
✔️ First Stable Release 1.0.0 Mar 28, 2023
✔️ Release 1.0.1 May 7, 2023
✔️ Release 1.1.0 May 8, 2023
✔️ Stable Release 2.0.0 Jun 1, 2023
✔️ Stable Release 3.0.0 Nov 3, 2023
✔️ Release 3.1.0 Jan 9,

A C++ Library to which implements the structures and algorithms for finite automata, pushdown automata, and Turing machines.

GitHub logo ZigRazor / CXXAutomata

A C++ library for simulating automata and Turing machines

CXXAutomata

A C++ library for simulating automata and Turing machines

Required Graphviz ( sudo apt-get install graphviz )

Required GoogleTest ( sudo apt install libgtest-dev build-essential cmake cd /usr/src/googletest sudo cmake . sudo cmake --build . --target install )

Inspired by: automata-lib




Python

A Python implementation of simply configurable State Machines.

GitHub logo ZigRazor / PyStateMachine

Python State Machine

PyStateMachine

python Python State Machine

CodeFactor Codacy Badge

DeepSource DeepSource

Introduction

PyStateMachine is a Framework that support state machines in Python

Requirements

  • Python3

How to Run

How do we import the framework?

  1. Insure that Python3 is installed:

  2. Install the PyStateMachines framework

    • pip3 install PyStateMachines

Example

After framework is installed, import and create a small example. Create xml file from sample with the State machine states.

myStateMachine.xml

<?xml version="1.0"?>
<x:States xmlns:x="pystatemachine:sm">
    <State>
        <Name>State1</Name>
        <Event>
            <Name>ToState2</Name>
            <ToState>State2</ToState>
        </Event>
    </State>
    <State>
        <Name>State2</Name>
        <Event>
            <Name>ToState3</Name>
            <ToState>State3</ToState>
        </Event>
    </State>
    <State>
        <Name>State3</Name>
        <Event>
            <Name>ToState1</Name>
            <ToState>State1</ToState>
        </Event>
    </State>
    <Initial_State>State1</Initial_State>
</x:States>

Create Python Script to run state machine pyStateMachine.py

# importing necessary packages
from StateMachine import StateMachine

"""Test StateMachine"""
sm = StateMachine("myStateMachine.xml")
sm.LoadStateMachine()

# print initial state
print(sm.get_current_state())  # current_state == State1

sm.InjectEvent("ToState2")
print(sm.get_current_state())  # current_state == State2

sm.InjectEvent("ToState3")
print(sm.get_current_state())  # current_state == State3

sm.InjectEvent("ToState1")
print(sm.get_current_state())  # current_state == State1

run Python script to execute state machine

python pyStateMachine.py

pyStateMachineUnitTest.py

## Test Suite

Happy Coding! 💻

Top comments (0)