boostnode

a high reliable python library

Usage no npm install needed!

<script type="module">
  import boostnode from 'https://cdn.skypack.dev/boostnode';
</script>

README

Project status

npm version downloads build status dependencies development dependencies peer dependencies documentation website

Use case

boostNode is a high level python library. This library supports python2.7+ and python3.4+ environments. And will always try to use every new cutting edge python features! The main goal of boostNode is to support all typical use cases for applications in a full generic, reusable and very solid way.

Content

[TOC]

Features

  • Very high code quality
    • 100% platform independent reachable branch coverage tested!
    • Signature based type checking in development mode
    • Each unit(function) has a cyclomatic complexity less than 8!
    • Every function, class, module or package has a simple api documentation.
  • Always compatible
    • Always compatible to newest stable python release with latest features included
    • Always compatible to last major stable python release. You can switch between both versions via the embedded macro languages (see runnabel/macro.py)
  • Platform independent web-based gui-toolkit (see runnable/webToWindow.py).
  • Smart, very secure and multiprocessing web-server supporting gzip, htaccess, ssl file parsing, directory listing, thread-based and process-based cgi-script handling. You Can run every executable file as cgi-script out of the box. You don't need any sockets like FastCGI or WebSocket (see runnable/server.py).
  • Macro processor for maintaining multiple versions of text based files in one place (see runnable/macro.py).
  • File synchronisation and reflection via native and platform independent symbolic file linking (see runnable/synchronisation.py).
  • Many extended language feature like signature checking, joint points for aspect orientated programming, automatic getter or setter generation (see aspect/signature.py, paradigm/aspectOrientation.py or paradigm/objectOrientation.py).
  • Many additional introspection features and native type extensions (see extension/native.py and extension/type.py).
  • Very high-level object orientated file abstraction layer with sandboxing support, and backup mechanisms included (see extension/file.py).
  • Highlevel code file handling (see runnable/codeRunner.py). Run every source code without manually compiling code or tidying up.
  • Template engine with embedded python code in any text based file supporting every python syntax and additional nesteable file-include statement (see runnable/template.py).
  • Full featured global logging mechanism handling (see extension/system.py).
  • Very generic full featured command line argument parsing interface written on top of python's native "ArgumentParser" module (see extension/system.py and extension/output.py).
  • Many tools to bring the dry concept to the highest possible level.

Usage

Copy this folder to your projects directory and write something like:

#!/usr/bin/env python

from boostNode.extension.file import Handler as FileHandler
from boostNode.extension.native import Dictionary, Module, \
    PropertyInitializer, String
from boostNode.extension.output import Buffer, Print
from boostNode.extension.system import CommandLine, Runnable
## python3.4 from boostNode.extension.type import Self, SelfClass
pass
from boostNode.paradigm.aspectOrientation import JointPoint
from boostNode.paradigm.objectOrientation import Class

# some stuff using imported boostNode components...

For advanced usage see the recommended module pattern described in "boosNode/__init__.py".

boostNode is able to switch itself between python2.X and python3.X. To switch boostNode version between python3.X and python 2.X use this command:

>>> /path/to/boostNode/runnable/macro.py -p /path/to/boostNode -e py

Note that you have to temporary support the needed python environment of given boostNode version to convert to the other one. Writing own code supporting two different interpreter version is very easy. Follow one of the two following syntax examples:

#!/usr/bin/env interpreterA

## interpreterB
## if True || False do {
##     something();
## }
# Your multiline code supported by interpreterA
if True or False do
    something()
endif
##

# Your two version of any one line code supportted by interpreterA or
# interpreterB
## interpreterB functionCall();
functionCall()

Have Fun with boostNode!

Copyright

see header in ./__init__.py

License

see header in ./__init__.py