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

Instalation from Pip

for install the lib from pip call

pip install CToolKit

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

Compile an Project

it wil copile the given file

import CToolKit as ct

COMPILER = 'gcc'
FILE = 'test.c'
OUTPUT = 'test.out'
ct.compile_project(
 COMPILER,
 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

COMPILER = 'gcc'
FILE = 'test.c'
OUTPUT = 'test.out'
ct.compile_project(
 COMPILER,
 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

COMPILER = 'gcc'
FILE = 'test.c'

ct.execute_test_for_file(COMPILER,FILE)

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

import CToolKit as ct

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

Execution

you can execute an binary with the ComandLine Execution class

import CToolKit as ct

COMPILER = 'gcc'

FILE = 'test.c'
OUTPUT = 'test.out'
ct.compile_project(
 COMPILER,
 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.13.tar.gz (6.3 kB view hashes)

Uploaded Source

Built Distribution

CToolKit-1.13-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