Nubia - это
Nubia построен на основе python-prompt-toolkit, который является фантастическим
Отказ от ответственности: Nubia - это бета-версия для не-ldshell вариантов использования в приложениях. Некоторые дизайнерские решения могут показаться странными, но они идеально подходят для использования в ldshell. Мы постоянно вносим изменения, чтобы сделать его более последовательным и универсальным вне рамок ldshell use-case. Пока не будет опубликован полностью стабильный релиз, используйте его на свой страх и риск.
Обратитесь к файлу CONTRIBUTING, чтобы узнать, как нам помочь.
Если вас интересует происхождение названия, ознакомьтесь с
Интерактивный режим в Nubia - это то, что делает его уникальным. Очень легко создать уникальную оболочку для вашей программы без лишних затрат. Интерактивная оболочка в упрощенном виде предлагает автоматические дополнения для команд, подкоманд, аргументов и значений. Она также предлагает разработчикам большой контроль над авто-завершениями, даже для команд, которые не подпадают под типичный формат. Примером может служить команда "select" в ldshell, которая выражается в виде SQL-запроса. Мы ожидаем, что в большинстве случаев использования Nubia такой контроль не понадобится, и команды AutoCommand будет достаточно без дополнительной настройки.
Если вы запускаете программу на Nubia без команды, она автоматически запускает интерактивную оболочку. Интерактивный режим выглядит следующим образом:
Пример
Это начинается с такой функции:
Требования
Приложения на основе Nubia требуют Python 3.6+ и работают как с
Установка Nubia
Если вы устанавливаете Nubia для вашего следующего проекта, вы можете легко использовать pip для этого:
Сборка Nubia из источника
Убедитесь, что pipenv установлен:
Вы можете использовать либо setup.py для создания tarball, либо использовать pipenv для установки virtualenv со всеми установленными зависимостями.
Пример запуска в virtualenv:
Если вы хотите запустить пример, то вам нужно добавить корень дерева исходных текстов в ваш PYTHONPATH.
Для проведения тестов:
Начало работы
См. руководство по началу работы, чтобы узнать, как построить простое приложение с Nubia.
Ссылка скрыта от гостей
для построения приложений командной строки с помощью Python. Изначально он был разработан для "интерактивной оболочки logdevice (он же ldshell)" на Facebook. С тех пор он стал многоразовым компонентом, и несколько внутренних проектов
Ссылка скрыта от гостей
теперь полагаются на него как на быстрый и простой способ получить интуитивно понятное приложение shell/cli без лишних шаблонов.Nubia построен на основе python-prompt-toolkit, который является фантастическим
Ссылка скрыта от гостей
для построения интерактивных приложений командной строки.Отказ от ответственности: Nubia - это бета-версия для не-ldshell вариантов использования в приложениях. Некоторые дизайнерские решения могут показаться странными, но они идеально подходят для использования в ldshell. Мы постоянно вносим изменения, чтобы сделать его более последовательным и универсальным вне рамок ldshell use-case. Пока не будет опубликован полностью стабильный релиз, используйте его на свой страх и риск.
Обратитесь к файлу CONTRIBUTING, чтобы узнать, как нам помочь.
Если вас интересует происхождение названия, ознакомьтесь с
Ссылка скрыта от гостей
с ее уникальной и красочной архитектурой.Основные характеристики
- Интерактивный режим, который предлагает автоматическое завершение
- Режим CLI, который генерируется из ваших функций и классов.
- Необязательные дополнения bash / zsh с помощью внешней утилиты 'nubia-complete' (экспериментальная)
- Настраиваемая строка состояния в интерактивном режиме.
- Дополнительная интерактивная оболочка на основе IPython
- Аргументы с подчеркиванием переносятся автоматически
- Аннотации типа Python 3 используются для проверки типа ввода
Интерактивный режим в Nubia - это то, что делает его уникальным. Очень легко создать уникальную оболочку для вашей программы без лишних затрат. Интерактивная оболочка в упрощенном виде предлагает автоматические дополнения для команд, подкоманд, аргументов и значений. Она также предлагает разработчикам большой контроль над авто-завершениями, даже для команд, которые не подпадают под типичный формат. Примером может служить команда "select" в ldshell, которая выражается в виде SQL-запроса. Мы ожидаем, что в большинстве случаев использования Nubia такой контроль не понадобится, и команды AutoCommand будет достаточно без дополнительной настройки.
Если вы запускаете программу на Nubia без команды, она автоматически запускает интерактивную оболочку. Интерактивный режим выглядит следующим образом:
Ссылка скрыта от гостей
- через VPNНе интерактивный режим
Режим CLI работает точно так же, как любая традиционная утилита
Ссылка скрыта от гостей
основе Unix .Пример
Это начинается с такой функции:
Код:
import socket
import typing
from termcolor import cprint
from nubia import argument, command, context
@command
@argument("hosts", description="Hostnames to resolve", aliases=["i"])
@argument("bad_name", name="nice", description="testing")
def lookup(hosts: typing.List[str], bad_name: int):
"""
This will lookup the hostnames and print the corresponding IP addresses
"""
ctx = context.get_context()
print(f"hosts: {hosts}")
cprint(f"Verbose? {ctx.verbose}")
for host in hosts:
cprint(f"{host} is {socket.gethostbyname(host)}")
# optional, by default it's 0
return 0
Требования
Приложения на основе Nubia требуют Python 3.6+ и работают как с
Ссылка скрыта от гостей
и с Linux. Хотя теоретически он должен работать на Windows, он никогда не пробовал.Установка Nubia
Если вы устанавливаете Nubia для вашего следующего проекта, вы можете легко использовать pip для этого:
Код:
pip3 install python-nubia
Сборка Nubia из источника
Убедитесь, что pipenv установлен:
Код:
pip3 install pipenv
Вы можете использовать либо setup.py для создания tarball, либо использовать pipenv для установки virtualenv со всеми установленными зависимостями.
Пример запуска в virtualenv:
Если вы хотите запустить пример, то вам нужно добавить корень дерева исходных текстов в ваш PYTHONPATH.
Код:
pipenv update --dev
pipenv shell
Код:
export PYTHONPATH=”$(pwd)”
cd example/
python nubia_example.py
Для проведения тестов:
Код:
pipenv run nosetests
Начало работы
См. руководство по началу работы, чтобы узнать, как построить простое приложение с Nubia.