Catalog PyPI
Back to packageRELEASE DETAILS

0.11.24

PyPI

abilian-core

A framework for enterprise applications (CRM, ERP, collaboration...).

Published29 Mar 2022
Direct dependencies43
Transitive dependenciesNot calculated

README

Version 0.11.24 documentation
About
=====

.. image:: https://circleci.com/gh/abilian/abilian-core.svg?style=svg
   :target: https://circleci.com/gh/abilian/abilian-core

.. image:: https://coveralls.io/repos/abilian/abilian-core/badge.svg?branch=master
   :target: https://coveralls.io/r/abilian/abilian-core?branch=master

.. image:: https://static.pepy.tech/badge/abilian-core
   :target: https://pepy.tech/project/abilian-core


Abilian Core is an enterprise application development platform based on the `Flask micro-framework <http://flask.pocoo.org/>`_, the `SQLAlchemy ORM <http://www.sqlalchemy.org/>`_, good intentions and best practices (for some value of "best").

The full documentation is available on http://docs.abilian.com/.


Goals & principles
------------------

- Development must be easy and fun (some some definition of "easy" and "fun", of course)

- The less code (and configuration) we write, the better

- Leverage existing reputable open source libraries and frameworks, such as SQLAlchemy and Flask

- It must lower errors, bugs, project's time to deliver. It's intended to be a rapid application development tool

- It must promote best practices in software development, specially Test-Driven Development (as advocated by the `GOOS book <http://www.amazon.com/gp/product/0321503627/>`_)


Features
--------

Here's a short list of features that you may find appealing in Abilian:

Infrastructure
^^^^^^^^^^^^^^

-  Plugin framework

-  Asynchronous tasks (using `Celery <http://www.celeryproject.org/>`_)

-  Security model and service

Domain model and services
^^^^^^^^^^^^^^^^^^^^^^^^^

-  Persistent domain object model, based on SQLAlchemy

-  Audit

Content management and services
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

-  Simple file-based content repository

-  Indexing service

-  Document preview and transformation

Social
^^^^^^

-  Users, groups and social graph (followers)

-  Activity streams

User Interface and API
^^^^^^^^^^^^^^^^^^^^^^

-  Forms (based on `WTForms <http://wtforms.simplecodes.com/>`_)

-  CRUD (Create, Retrieve, Edit/Update, Remove) interface from domain
   models

-  Labels and descriptions for each field

-  Various web utilities: view decorators, class-based views, Jinja2
   filters, etc.

-  A default UI based on `Bootstrap 3 <http://getbootstrap.com/>`_ and
   several carefully selected jQuery plugins such as
   `Select2 <http://ivaynberg.github.io/select2/>`_

-  REST and AJAX API helpers

-  i18n: support for multi-language via Babel, with multiple translation
   dictionaries

Management and admin
^^^^^^^^^^^^^^^^^^^^

-  Initial settings wizard

-  Admin and user settings framework

-  System monitoring (using `Sentry <https://getsentry.com/welcome/>`_)

Current status
--------------

Abilian Core is currently alpha software, in terms of API stability.

It is currently used in several applications that have been developped
by `Abilian <http://www.abilian.com/>`_ over the last two years:

-  `Abilian SBE (Social Business Engine)
   <https://github.com/abilian/abilian-sbe/>`_ - an enterprise 2.0
   (social collaboration) platform

-  Abilian EMS (Event Management System)

-  Abilian CRM (Customer / Contact / Community Relationship Management
   System)

-  Abilian Le MOOC - a MOOC prototype

-  Abilian CMS - a Web CMS

In other words, Abilian Core is the foundation for a small, but growing,
family of business-critical applications that our customers intend us to
support in the coming years.

So while Abilian Core APIs, object model and even architecture, may (and
most probably will) change due to various refactorings that are expected
as we can't be expected to ship perfect software on the firt release, we
also intend to treat it as a valuable business asset and keep
maintaining and improving it in the foreseeable future.

Roadmap & getting involved
--------------------------

If you need help or for general discussions about the Abilian Platform, we
recommend joing the `Abilian Users
<https://groups.google.com/g/abilian-users>`_ forum on Google
Groups.

For features and bug requests (or is it the other way around?), we
recommend that you use the `GitHub issue
tracker <https://github.com/abilian/abilian-core/issues>`_.

Read the `Contributing Guide <CONTRIBUTING.md>`_ for more information.


Install
=======

If you are a Python web developer (which is the primary target for this
project), you probably already know about:

-  Python 3.8+
-  Virtualenv
-  Poetry (https://poetry.eustace.io/)

So, after you have created and activated a virtualenv for the project,
just run::

    poetry

To use some features of the library, namely document and images
transformation, you will need to install the additional native packages,
using our operating system's package management tools (``dpkg``,
``yum``, ``brew``...):

-  A few image manipulation libraries (``libpng``, ``libjpeg``)
-  The ``poppler-utils``, ``unoconv``, ``LibreOffice``, ``ImageMagick``
   utilities

Look at the ``fabfile.py`` for the exact list.


Testing
=======

Abilian Core come with a full unit and integration testing suite. You
can run it with ``make test`` (once your virtualenv has been activated and
all required dependencies have been installed, see above).

Alternatively, you can use ``tox`` to run the full test suite in an
isolated environment.


Licence
=======

Abilian Core is licensed under the LGPL.


Credits
=======

Abilian Core has been created by the development team at Abilian
(currently: Stefane and Bertrand), with financial support from our
wonderful customers, and R&D fundings from the French Government, the
Paris Region and the European Union.

We are also specially grateful to:

-  `Armin Ronacher <http://lucumr.pocoo.org/>`_ for his work on Flask.
-  `Michael Bayer <http://techspot.zzzeek.org/>`_ for his work on
   SQLAlchemy.
-  Everyone who has been involved with and produced open source software
   for the Flask ecosystem (Kiran Jonnalagadda and the
   `HasGeek <https://hasgeek.com/>`_ team, Max Countryman, Matt Wright,
   Matt Good, Thomas Johansson, James Crasta, and many others).
-  The creators of Django, Pylons, TurboGears, Pyramid and Zope, for
   even more inspiration.
-  The whole Python community.

Links
=====

- `Discussion list (Google Groups) <https://groups.google.com/g/abilian-users>`_
- `Documentation <http://docs.abilian.com/>`_
- `GitHub repository <https://github.com/abilian/abilian-core>`_
- `Corporate support <http://www.abilian.com>`_

Downloads & popularity

Awaiting observations

No metric observations yet

Download counts and popularity will appear here as the collector receives them.

Declared dependencies 43

Native requirements
43 direct targetsNot calculated transitive count
Package / targetRequirementRelationship
Flask
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.8,<4.0",
  "evaluation": "NOT_EVALUATED"
}
Flask (>=1.1.4,<1.2.0)runtime
Flask-Assets
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.8,<4.0",
  "evaluation": "NOT_EVALUATED"
}
Flask-Assets (>=0.12)runtime
Flask-Babel
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.8,<4.0",
  "evaluation": "NOT_EVALUATED"
}
Flask-Babel (>=0.11,<2)runtime
Flask-Login
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.8,<4.0",
  "evaluation": "NOT_EVALUATED"
}
Flask-Login (>=0.4)runtime
Flask-Mail
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.8,<4.0",
  "evaluation": "NOT_EVALUATED"
}
Flask-Mail (>=0.9.1)runtime
Flask-Migrate
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.8,<4.0",
  "evaluation": "NOT_EVALUATED"
}
Flask-Migrate (>=2.0)runtime
Flask-Talisman
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.8,<4.0",
  "evaluation": "NOT_EVALUATED"
}
Flask-Talisman (>=0.6)runtime
Flask-WTF
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.8,<4.0",
  "evaluation": "NOT_EVALUATED"
}
Flask-WTF (>=0.12,<0.13)runtime
MarkupSafe
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.8,<4.0",
  "evaluation": "NOT_EVALUATED"
}
MarkupSafe (>=0.21)runtime
PyYAML
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.8,<4.0",
  "evaluation": "NOT_EVALUATED"
}
PyYAMLruntime
SQLAlchemy
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.8,<4.0",
  "evaluation": "NOT_EVALUATED"
}
SQLAlchemy (>=1.1,<2.0)runtime
WTForms-Alchemy
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.8,<4.0",
  "evaluation": "NOT_EVALUATED"
}
WTForms-Alchemy (>=0.12)runtime
Whoosh
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.8,<4.0",
  "evaluation": "NOT_EVALUATED"
}
Whoosh (>=2.5,<3.0)runtime
alembic
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.8,<4.0",
  "evaluation": "NOT_EVALUATED"
}
alembic (>=0.9)runtime
bcrypt
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.8,<4.0",
  "evaluation": "NOT_EVALUATED"
}
bcryptruntime
bleach
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.8,<4.0",
  "evaluation": "NOT_EVALUATED"
}
bleach (>=2)runtime
celery
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.8,<4.0",
  "evaluation": "NOT_EVALUATED"
}
celery (>=4,<5)runtime
clamd
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.8,<4.0",
  "evaluation": "NOT_EVALUATED"
}
clamdruntime
closure
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.8,<4.0",
  "evaluation": "NOT_EVALUATED"
}
closureruntime
cssmin
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.8,<4.0",
  "evaluation": "NOT_EVALUATED"
}
cssminruntime
deprecated
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.8,<4.0",
  "evaluation": "NOT_EVALUATED"
}
deprecatedruntime
devtools
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.8,<4.0",
  "evaluation": "NOT_EVALUATED"
}
devtoolsruntime
flask-sqlalchemy
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.8,<4.0",
  "evaluation": "NOT_EVALUATED"
}
flask-sqlalchemy (<=2.1)runtime
hyperlink
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.8,<4.0",
  "evaluation": "NOT_EVALUATED"
}
hyperlinkruntime
itsdangerous
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.8,<4.0",
  "evaluation": "NOT_EVALUATED"
}
itsdangerous (>=1,<2)runtime
jinja2
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.8,<4.0",
  "evaluation": "NOT_EVALUATED"
}
jinja2 (>=2,<3)runtime
jsmin
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.8,<4.0",
  "evaluation": "NOT_EVALUATED"
}
jsmin (>=3.0,<3.1)runtime
lxml
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.8,<4.0",
  "evaluation": "NOT_EVALUATED"
}
lxmlruntime
markupsafe
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.8,<4.0",
  "evaluation": "NOT_EVALUATED"
}
markupsafe (>=2.0,<2.1)runtime
pandas
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.8,<4.0",
  "evaluation": "NOT_EVALUATED"
}
pandas (>=0.17)runtime
pillow
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.8,<4.0",
  "evaluation": "NOT_EVALUATED"
}
pillowruntime
pygeoip
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.8,<4.0",
  "evaluation": "NOT_EVALUATED"
}
pygeoipruntime
python-dateutil
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.8,<4.0",
  "evaluation": "NOT_EVALUATED"
}
python-dateutil (>=2.4.0,<3.0.0)runtime
python-magic
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.8,<4.0",
  "evaluation": "NOT_EVALUATED"
}
python-magicruntime
redis
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.8,<4.0",
  "evaluation": "NOT_EVALUATED"
}
redis (>=3,<4)runtime
sentry-sdk
Environment
{
  "extras": "flask",
  "marker": null,
  "requires_python": ">=3.8,<4.0",
  "evaluation": "NOT_EVALUATED"
}
sentry-sdk[flask]runtime
sqlalchemy
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.8,<4.0",
  "evaluation": "NOT_EVALUATED"
}
sqlalchemy (>=1.3,<1.4)runtime
sqlparse
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.8,<4.0",
  "evaluation": "NOT_EVALUATED"
}
sqlparseruntime
tqdm
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.8,<4.0",
  "evaluation": "NOT_EVALUATED"
}
tqdmruntime
webassets
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.8,<4.0",
  "evaluation": "NOT_EVALUATED"
}
webassets (<2)runtime
werkzeug
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.8,<4.0",
  "evaluation": "NOT_EVALUATED"
}
werkzeug (<1)runtime
wtforms
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.8,<4.0",
  "evaluation": "NOT_EVALUATED"
}
wtforms (>=2.3,<2.4)runtime
wtforms-sqlalchemy
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.8,<4.0",
  "evaluation": "NOT_EVALUATED"
}
wtforms-sqlalchemyruntime

Distribution files

2 collected
abilian_core-0.11.24-py3-none-any.whl

bdist_wheel · 4,658.35 KB · Python py3

Source file
abilian-core-0.11.24.tar.gz

sdist · 4,005.36 KB · Python source

Source file

Repository

PENDING
abilian/abilian-core

Shared repository data · GitHub

License detected in repository
Not collected

Metadata history

Meaningful changes
Current collected state Current

Observed since 20 Oct, 17:25 UTC

No superseded metadata states collected. Unchanged observations do not create new revisions.

Record identity

package_version:fa7012dc9b0e5538d121e23a04fb2176c0e439009003f4e120927175a980155c

Other collected versions

View all collected versions →