Skip to main content

CToolKit to manipulate CPipeLines and Repos

Project description

CToolkit

is An Python Package to manipulate C/C++ buildings and PipeLines providing easy automation tools to increase your code pipelines with amalgamations, black box testing, and readme replacment

Installation from scratch

clone the repo into your machine with:

git clone https://github.com/OUIsolutions/CTolkitBuild.git

Then install with:

cd CTolkitBuild/
pip install .

Installation from github

type the following comand to install from github

pip install git+https://github.com/OUIsolutions/CTolkitBuild.git

Amalgamation System

for amalgamate an C lib its super easy, just call

import CToolKit as ct

STARTER  = f'test.h'
OUTPUT = 'amalgamated.h'
amalgamated_code = ct.generate_amalgamated_code(STARTER)
with open(OUTPUT,'w') as arq:
    arq.write(amalgamated_code)

or even more implicit:

import CToolKit as ct

STARTER  = f'CTextEngine/CTextEngineMain.h'
OUTPUT = 'amalgamated.h'
amalgamated_code = ct.generate_amalgamated_code(STARTER,OUTPUT)

Comand Line Operations

Copile an Project

it wil copile the given file

import CToolKit as ct
COPILER = 'gcc'
FILE = 'test.c'
OUTPUT = 'test.out'
ct.copile_project(
    COPILER,
    FILE,
    OUTPUT,
    raise_errors=True,
    raise_warnings=True
    )

Testing copilation with valgrind

Execute an valgrind testing of the given binary ( you need to have valgrind installed in your os)

import CToolKit as ct
COPILER = 'gcc'
FILE = 'test.c'
OUTPUT = 'test.out'
ct.copile_project(
    COPILER,
    FILE,
    OUTPUT,
    raise_errors=True,
    raise_warnings=True
    )


FLAGS = ['-libcur']
ct.test_binary_with_valgrind(OUTPUT,FLAGS)

Executing copilation and test with file with a single comand

import CToolKit as ct

COPILER = 'gcc'
FILE = 'test.c'

ct.execute_test_for_file(COPILER,FILE)

Executing Test with all .c or .cpp files in the given folder

import CToolKit as ct

COPILER = 'gcc'
FOLDER ='test'
ct.execute_test_for_folder(COPILER,FOLDER,print_values=True)

Execution

you can execute an binary with the ComandLine Execution class

import CToolKit as ct
COPILER = 'gcc'

FILE = 'test.c'
OUTPUT = 'test.out'
ct.copile_project(
    COPILER,
    FILE,
    OUTPUT,
    raise_errors=True,
    raise_warnings=True
    )


execution = ct.ComandLineExecution(f'./{OUTPUT}')

print('output:',execution.output)
print('statuscode:',execution.status_code)

Readme Replacement

you can replace readme content with code system for these just tipe: < + !--codeof:test.c-->, you can see these example in the following lib: https://github.com/OUIsolutions/CTextEngine

Will free the memory
<!--codeof:exemples/free.c-->
import CToolKit as ct

ct.include_code_in_markdown('README.md')

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

CToolKit-1.1.tar.gz (6.3 kB view hashes)

Uploaded Source

Built Distribution

CToolKit-1.1-py3-none-any.whl (13.9 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page