%global _empty_manifest_terminate_build 0 Name: python-netsblox Version: 0.5.14 Release: 1 Summary: A python interface for accessing NetsBlox services License: Apache 2.0 URL: https://github.com/dragazo/NetsBlox-python Source0: https://mirrors.nju.edu.cn/pypi/web/packages/80/58/60d64ef211a5c06d4e414f8015a99c1489f9dcfe4f7cdd84e06ac8bc44a6/netsblox-0.5.14.tar.gz BuildArch: noarch Requires: python3-darkdetect Requires: python3-deprecation Requires: python3-gelidum Requires: python3-jedi Requires: python3-nb2pb Requires: python3-numpy Requires: python3-parso Requires: python3-pillow Requires: python3-randomname Requires: python3-requests Requires: python3-websocket-client %description # PyBlox NetsBlox is a block-based programming environment which has a focus on distributed computing and internet connectivity. One of the core features of NetsBlox are _remote procedure calls_ (RPCs), which connect to the NetsBlox server and provide access to online resources such as databases, GoogleMaps, online translation, wireless robotics, mobile phone sensors/control, and more. PyBlox is an interface for accessing all [NetsBlox](https://netsblox.org/) services from within python. You can import this package in any python program that has internet access and begin calling RPCs and sending/receiving messages! For more information about NetsBlox and the available services, see the official [NetsBlox Documentation](https://editor.netsblox.org/docs/index.html). # Example Usage Here's a short example to see how you can access the [`MaunaLoaCO2Data`](https://editor.netsblox.org/docs/services/MaunaLoaCO2Data/index.html) service from python. ```py import netsblox nb = netsblox.Client() # create a client to access NetsBlox data = nb.mauna_loa_co2_data.get_co2_trend(2000, 2010) print(data) ``` # Graphical Environment PyBlox, while useful on its own for accessing NetsBlox services, has a side goal of helping transition students from block-based languages like NetsBlox and Snap! into textual languages like python. Because of this, PyBlox comes with a power graphical environment that supports most of the same features as NetsBlox/Snap!, as well as an IDE for creating python projects in a way that is still structured like a NetsBlox/Snap! project in both appearnance and concurrency model (closest approximation). These features are only activated when explicitly called, leaving the default behavior as a normal python package for accessing NetsBlox services. To launch the IDE, you can simply run PyBlox (`netsblox`) as a module: ```sh python -m netsblox ``` # Installation PyBlox is available as a pip package called `netsblox` (keep in mind that PyBlox is a python3 package, so you may need to use `pip3` if your `pip` still points to the python2 version). ```sh pip install netsblox ``` If you run into installation issues with the `nb2pb` dependency, follow the instruction [here](https://github.com/dragazo/nb2pb). It is possible that there is not a wheel build for your platform and/or python version, which means that it must be compiled from source. This requires installing [`cargo`](https://doc.rust-lang.org/cargo/getting-started/installation.html), after which you can reattempt installing `netsblox`. If this solves your problem, feel free to [submit an issue](https://github.com/dragazo/PyBlox/issues/new) including your operating system and processor architecture. The following additional setup is required, depending on your operating system. ## Windows _No additional install dependencies_ ## Mac ```sh brew install python-tk ``` ## Linux ```sh sudo apt install python3-pil python3-pil.imagetk sudo apt install idle3 ``` # Structured Data Due to the limited type primitives in Snap!, one NetsBlox typing convention is "structured data", which is really just a list of lists (pairs) denoting (unique string) keys and values. In the python interface, this is replaced by `dict` for both input and return value. The python interface will automatically convert input `dict` values into lists of lists, and convert lists of lists return values into `dict` (where appropriate). Note that this conversion is only performed by the static service wrappers like `Client.chart.default_options()`, and not for the dynamic invocation method: `Client.call('Chart', 'defaultOptions')`. # Naming Conventions The python names for services, functions, and input parameters are identical to those in the official [NetsBlox documentation](https://editor.netsblox.org/docs/index.html), except that they are converted into snake case to by more pythonic. Of course, any modern editor will have some form of intellisense built in, so in practice this is a non-issue. %package -n python3-netsblox Summary: A python interface for accessing NetsBlox services Provides: python-netsblox BuildRequires: python3-devel BuildRequires: python3-setuptools BuildRequires: python3-pip %description -n python3-netsblox # PyBlox NetsBlox is a block-based programming environment which has a focus on distributed computing and internet connectivity. One of the core features of NetsBlox are _remote procedure calls_ (RPCs), which connect to the NetsBlox server and provide access to online resources such as databases, GoogleMaps, online translation, wireless robotics, mobile phone sensors/control, and more. PyBlox is an interface for accessing all [NetsBlox](https://netsblox.org/) services from within python. You can import this package in any python program that has internet access and begin calling RPCs and sending/receiving messages! For more information about NetsBlox and the available services, see the official [NetsBlox Documentation](https://editor.netsblox.org/docs/index.html). # Example Usage Here's a short example to see how you can access the [`MaunaLoaCO2Data`](https://editor.netsblox.org/docs/services/MaunaLoaCO2Data/index.html) service from python. ```py import netsblox nb = netsblox.Client() # create a client to access NetsBlox data = nb.mauna_loa_co2_data.get_co2_trend(2000, 2010) print(data) ``` # Graphical Environment PyBlox, while useful on its own for accessing NetsBlox services, has a side goal of helping transition students from block-based languages like NetsBlox and Snap! into textual languages like python. Because of this, PyBlox comes with a power graphical environment that supports most of the same features as NetsBlox/Snap!, as well as an IDE for creating python projects in a way that is still structured like a NetsBlox/Snap! project in both appearnance and concurrency model (closest approximation). These features are only activated when explicitly called, leaving the default behavior as a normal python package for accessing NetsBlox services. To launch the IDE, you can simply run PyBlox (`netsblox`) as a module: ```sh python -m netsblox ``` # Installation PyBlox is available as a pip package called `netsblox` (keep in mind that PyBlox is a python3 package, so you may need to use `pip3` if your `pip` still points to the python2 version). ```sh pip install netsblox ``` If you run into installation issues with the `nb2pb` dependency, follow the instruction [here](https://github.com/dragazo/nb2pb). It is possible that there is not a wheel build for your platform and/or python version, which means that it must be compiled from source. This requires installing [`cargo`](https://doc.rust-lang.org/cargo/getting-started/installation.html), after which you can reattempt installing `netsblox`. If this solves your problem, feel free to [submit an issue](https://github.com/dragazo/PyBlox/issues/new) including your operating system and processor architecture. The following additional setup is required, depending on your operating system. ## Windows _No additional install dependencies_ ## Mac ```sh brew install python-tk ``` ## Linux ```sh sudo apt install python3-pil python3-pil.imagetk sudo apt install idle3 ``` # Structured Data Due to the limited type primitives in Snap!, one NetsBlox typing convention is "structured data", which is really just a list of lists (pairs) denoting (unique string) keys and values. In the python interface, this is replaced by `dict` for both input and return value. The python interface will automatically convert input `dict` values into lists of lists, and convert lists of lists return values into `dict` (where appropriate). Note that this conversion is only performed by the static service wrappers like `Client.chart.default_options()`, and not for the dynamic invocation method: `Client.call('Chart', 'defaultOptions')`. # Naming Conventions The python names for services, functions, and input parameters are identical to those in the official [NetsBlox documentation](https://editor.netsblox.org/docs/index.html), except that they are converted into snake case to by more pythonic. Of course, any modern editor will have some form of intellisense built in, so in practice this is a non-issue. %package help Summary: Development documents and examples for netsblox Provides: python3-netsblox-doc %description help # PyBlox NetsBlox is a block-based programming environment which has a focus on distributed computing and internet connectivity. One of the core features of NetsBlox are _remote procedure calls_ (RPCs), which connect to the NetsBlox server and provide access to online resources such as databases, GoogleMaps, online translation, wireless robotics, mobile phone sensors/control, and more. PyBlox is an interface for accessing all [NetsBlox](https://netsblox.org/) services from within python. You can import this package in any python program that has internet access and begin calling RPCs and sending/receiving messages! For more information about NetsBlox and the available services, see the official [NetsBlox Documentation](https://editor.netsblox.org/docs/index.html). # Example Usage Here's a short example to see how you can access the [`MaunaLoaCO2Data`](https://editor.netsblox.org/docs/services/MaunaLoaCO2Data/index.html) service from python. ```py import netsblox nb = netsblox.Client() # create a client to access NetsBlox data = nb.mauna_loa_co2_data.get_co2_trend(2000, 2010) print(data) ``` # Graphical Environment PyBlox, while useful on its own for accessing NetsBlox services, has a side goal of helping transition students from block-based languages like NetsBlox and Snap! into textual languages like python. Because of this, PyBlox comes with a power graphical environment that supports most of the same features as NetsBlox/Snap!, as well as an IDE for creating python projects in a way that is still structured like a NetsBlox/Snap! project in both appearnance and concurrency model (closest approximation). These features are only activated when explicitly called, leaving the default behavior as a normal python package for accessing NetsBlox services. To launch the IDE, you can simply run PyBlox (`netsblox`) as a module: ```sh python -m netsblox ``` # Installation PyBlox is available as a pip package called `netsblox` (keep in mind that PyBlox is a python3 package, so you may need to use `pip3` if your `pip` still points to the python2 version). ```sh pip install netsblox ``` If you run into installation issues with the `nb2pb` dependency, follow the instruction [here](https://github.com/dragazo/nb2pb). It is possible that there is not a wheel build for your platform and/or python version, which means that it must be compiled from source. This requires installing [`cargo`](https://doc.rust-lang.org/cargo/getting-started/installation.html), after which you can reattempt installing `netsblox`. If this solves your problem, feel free to [submit an issue](https://github.com/dragazo/PyBlox/issues/new) including your operating system and processor architecture. The following additional setup is required, depending on your operating system. ## Windows _No additional install dependencies_ ## Mac ```sh brew install python-tk ``` ## Linux ```sh sudo apt install python3-pil python3-pil.imagetk sudo apt install idle3 ``` # Structured Data Due to the limited type primitives in Snap!, one NetsBlox typing convention is "structured data", which is really just a list of lists (pairs) denoting (unique string) keys and values. In the python interface, this is replaced by `dict` for both input and return value. The python interface will automatically convert input `dict` values into lists of lists, and convert lists of lists return values into `dict` (where appropriate). Note that this conversion is only performed by the static service wrappers like `Client.chart.default_options()`, and not for the dynamic invocation method: `Client.call('Chart', 'defaultOptions')`. # Naming Conventions The python names for services, functions, and input parameters are identical to those in the official [NetsBlox documentation](https://editor.netsblox.org/docs/index.html), except that they are converted into snake case to by more pythonic. Of course, any modern editor will have some form of intellisense built in, so in practice this is a non-issue. %prep %autosetup -n netsblox-0.5.14 %build %py3_build %install %py3_install install -d -m755 %{buildroot}/%{_pkgdocdir} if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi pushd %{buildroot} if [ -d usr/lib ]; then find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst fi if [ -d usr/lib64 ]; then find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst fi if [ -d usr/bin ]; then find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst fi if [ -d usr/sbin ]; then find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst fi touch doclist.lst if [ -d usr/share/man ]; then find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst fi popd mv %{buildroot}/filelist.lst . mv %{buildroot}/doclist.lst . %files -n python3-netsblox -f filelist.lst %dir %{python3_sitelib}/* %files help -f doclist.lst %{_docdir}/* %changelog * Fri May 05 2023 Python_Bot - 0.5.14-1 - Package Spec generated