Merge branch 'main' of https://github.com/MeNeedingADifferentFork/circuitpython-supermini-nrf52840
This commit is contained in:
commit
b1bcd90ed2
@ -24,3 +24,5 @@ numer
|
||||
arithmetics
|
||||
ftbfs
|
||||
straightaway
|
||||
ftbs
|
||||
ftb
|
||||
|
@ -1,4 +1,7 @@
|
||||
#all: Reformat remaining C code that doesn't have a space after a comma.
|
||||
# top: Update Python formatting to black "2023 stable style".
|
||||
8b2748269244304854b3462cb8902952b4dcb892
|
||||
|
||||
# all: Reformat remaining C code that doesn't have a space after a comma.
|
||||
5b700b0af90591d6b1a2c087bb8de6b7f1bfdd2d
|
||||
|
||||
# ports: Reformat more C and Python source code.
|
||||
|
11
.github/actions/mpy_cross/action.yml
vendored
11
.github/actions/mpy_cross/action.yml
vendored
@ -5,6 +5,9 @@ inputs:
|
||||
required: false
|
||||
default: true
|
||||
type: boolean
|
||||
cp-version:
|
||||
required: true
|
||||
type: string
|
||||
|
||||
runs:
|
||||
using: composite
|
||||
@ -16,17 +19,19 @@ runs:
|
||||
uses: actions/download-artifact@v3
|
||||
with:
|
||||
name: mpy-cross
|
||||
path: mpy-cross
|
||||
path: mpy-cross/build
|
||||
|
||||
- name: Make mpy-cross executable
|
||||
if: inputs.download == 'true' && steps.download-mpy-cross.outcome == 'success'
|
||||
run: sudo chmod +x mpy-cross/mpy-cross
|
||||
run: sudo chmod +x mpy-cross/build/mpy-cross
|
||||
shell: bash
|
||||
|
||||
- name: Build mpy-cross
|
||||
if: inputs.download == 'false' || steps.download-mpy-cross.outcome == 'failure'
|
||||
run: make -C mpy-cross -j2
|
||||
shell: bash
|
||||
env:
|
||||
CP_VERSION: ${{ inputs.cp-version }}
|
||||
|
||||
- name: Upload mpy-cross
|
||||
if: inputs.download == 'false' || steps.download-mpy-cross.outcome == 'failure'
|
||||
@ -34,4 +39,4 @@ runs:
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: mpy-cross
|
||||
path: mpy-cross/mpy-cross
|
||||
path: mpy-cross/build/mpy-cross
|
||||
|
2
.github/workflows/build-boards.yml
vendored
2
.github/workflows/build-boards.yml
vendored
@ -49,6 +49,8 @@ jobs:
|
||||
- name: Set up mpy-cross
|
||||
if: steps.set-up-submodules.outputs.frozen == 'True'
|
||||
uses: ./.github/actions/mpy_cross
|
||||
with:
|
||||
cp-version: ${{ inputs.cp-version }}
|
||||
|
||||
- name: Versions
|
||||
run: |
|
||||
|
4
.github/workflows/build-mpy-cross.yml
vendored
4
.github/workflows/build-mpy-cross.yml
vendored
@ -64,11 +64,11 @@ jobs:
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: mpy-cross.${{ env.EX }}
|
||||
path: mpy-cross/mpy-cross.${{ env.EX }}
|
||||
path: mpy-cross/build-${{ matrix.mpy-cross }}/mpy-cross.${{ env.EX }}
|
||||
- name: Upload to S3
|
||||
uses: ./.github/actions/upload_aws
|
||||
with:
|
||||
source: mpy-cross/mpy-cross.${{ env.EX }}
|
||||
source: mpy-cross/build-${{ matrix.mpy-cross }}/mpy-cross.${{ env.EX }}
|
||||
destination: mpy-cross/${{ env.OS }}/mpy-cross-${{ env.OS }}-${{ env.CP_VERSION }}.${{ env.EX }}
|
||||
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
|
||||
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
|
||||
|
11
.github/workflows/build.yml
vendored
11
.github/workflows/build.yml
vendored
@ -51,6 +51,7 @@ jobs:
|
||||
- name: Set up mpy-cross
|
||||
uses: ./.github/actions/mpy_cross
|
||||
with:
|
||||
cp-version: ${{ steps.set-up-submodules.outputs.version }}
|
||||
download: false
|
||||
- name: Get last commit with checks
|
||||
id: get-last-commit-with-checks
|
||||
@ -127,15 +128,15 @@ jobs:
|
||||
- uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: mpy-cross-macos-11-x64
|
||||
path: mpy-cross/mpy-cross
|
||||
path: mpy-cross/build/mpy-cross
|
||||
- name: Build mpy-cross (arm64)
|
||||
run: make -C mpy-cross -j2 -f Makefile.m1 V=2
|
||||
- uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: mpy-cross-macos-11-arm64
|
||||
path: mpy-cross/mpy-cross-arm64
|
||||
path: mpy-cross/build-arm64/mpy-cross-arm64
|
||||
- name: Make universal binary
|
||||
run: lipo -create -output mpy-cross-macos-universal mpy-cross/mpy-cross mpy-cross/mpy-cross-arm64
|
||||
run: lipo -create -output mpy-cross-macos-universal mpy-cross/build/mpy-cross mpy-cross/build-arm64/mpy-cross-arm64
|
||||
- name: Upload artifact
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
@ -147,8 +148,8 @@ jobs:
|
||||
(github.event_name == 'release' && (github.event.action == 'published' || github.event.action == 'rerequested'))
|
||||
run: |
|
||||
[ -z "$AWS_ACCESS_KEY_ID" ] || aws s3 cp mpy-cross-macos-universal s3://adafruit-circuit-python/bin/mpy-cross/macos-11/mpy-cross-macos-11-${{ env.CP_VERSION }}-universal --no-progress --region us-east-1
|
||||
[ -z "$AWS_ACCESS_KEY_ID" ] || aws s3 cp mpy-cross/mpy-cross-arm64 s3://adafruit-circuit-python/bin/mpy-cross/macos-11/mpy-cross-macos-11-${{ env.CP_VERSION }}-arm64 --no-progress --region us-east-1
|
||||
[ -z "$AWS_ACCESS_KEY_ID" ] || aws s3 cp mpy-cross/mpy-cross s3://adafruit-circuit-python/bin/mpy-cross/macos-11/mpy-cross-macos-11-${{ env.CP_VERSION }}-x64 --no-progress --region us-east-1
|
||||
[ -z "$AWS_ACCESS_KEY_ID" ] || aws s3 cp mpy-cross/build-arm64/mpy-cross-arm64 s3://adafruit-circuit-python/bin/mpy-cross/macos-11/mpy-cross-macos-11-${{ env.CP_VERSION }}-arm64 --no-progress --region us-east-1
|
||||
[ -z "$AWS_ACCESS_KEY_ID" ] || aws s3 cp mpy-cross/build/mpy-cross s3://adafruit-circuit-python/bin/mpy-cross/macos-11/mpy-cross-macos-11-${{ env.CP_VERSION }}-x64 --no-progress --region us-east-1
|
||||
env:
|
||||
AWS_PAGER: ''
|
||||
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
|
||||
|
1
.github/workflows/custom-board-build.yml
vendored
1
.github/workflows/custom-board-build.yml
vendored
@ -65,6 +65,7 @@ jobs:
|
||||
if: steps.set-up-submodules.outputs.frozen == 'True'
|
||||
uses: ./.github/actions/mpy_cross
|
||||
with:
|
||||
cp-version: ${{ steps.set-up-submodules.outputs.version }}
|
||||
download: false
|
||||
- name: Versions
|
||||
run: |
|
||||
|
4
.github/workflows/run-tests.yml
vendored
4
.github/workflows/run-tests.yml
vendored
@ -17,7 +17,7 @@ jobs:
|
||||
env:
|
||||
CP_VERSION: ${{ inputs.cp-version }}
|
||||
MICROPY_CPYTHON3: python3.8
|
||||
MICROPY_MICROPYTHON: ../ports/unix/micropython-coverage
|
||||
MICROPY_MICROPYTHON: ../ports/unix/build-coverage/micropython
|
||||
TEST_all:
|
||||
TEST_mpy: --via-mpy -d basics float micropython
|
||||
TEST_native: --emit native
|
||||
@ -41,6 +41,8 @@ jobs:
|
||||
uses: ./.github/actions/deps/external
|
||||
- name: Set up mpy-cross
|
||||
uses: ./.github/actions/mpy_cross
|
||||
with:
|
||||
cp-version: ${{ inputs.cp-version }}
|
||||
- name: Build unix port
|
||||
run: make -C ports/unix VARIANT=coverage -j2
|
||||
- name: Run tests
|
||||
|
3
.gitmodules
vendored
3
.gitmodules
vendored
@ -345,6 +345,9 @@
|
||||
path = ports/raspberrypi/lib/Pico-PIO-USB
|
||||
url = https://github.com/sekigon-gonnoc/Pico-PIO-USB.git
|
||||
branch = main
|
||||
[submodule "lib/micropython-lib"]
|
||||
path = lib/micropython-lib
|
||||
url = https://github.com/micropython/micropython-lib.git
|
||||
[submodule "lib/certificates"]
|
||||
path = lib/certificates
|
||||
url = https://github.com/adafruit/certificates
|
||||
|
@ -19,7 +19,10 @@ repos:
|
||||
exclude: |
|
||||
(?x)^(
|
||||
locale/|
|
||||
lib/
|
||||
lib/|
|
||||
tests/unicode/data/utf-8_invalid.txt|
|
||||
tests/extmod/data/qr.pgm|
|
||||
tests/basics/bytearray_byte_operations.py
|
||||
)
|
||||
- repo: local
|
||||
hooks:
|
||||
|
8
LICENSE
8
LICENSE
@ -1,6 +1,6 @@
|
||||
MIT License
|
||||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) 2013-2022 Damien P. George and others
|
||||
Copyright (c) 2013-2023 Damien P. George
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
@ -9,8 +9,8 @@ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
|
3
conf.py
3
conf.py
@ -202,7 +202,8 @@ exclude_patterns = ["**/build*",
|
||||
"ports/cxd56/spresense-exported-sdk",
|
||||
"ports/espressif/certificates",
|
||||
"ports/espressif/esp-idf",
|
||||
"ports/espressif/esp32-camera",
|
||||
"ports/espressif/esp-camera",
|
||||
"ports/espressif/esp-protocols",
|
||||
"ports/espressif/.idf_tools",
|
||||
"ports/espressif/peripherals",
|
||||
"ports/litex/hw",
|
||||
|
@ -44,7 +44,6 @@
|
||||
#include "shared-bindings/_bleio/Service.h"
|
||||
#include "shared-bindings/_bleio/UUID.h"
|
||||
#include "supervisor/shared/tick.h"
|
||||
#include "supervisor/shared/translate/translate.h"
|
||||
|
||||
STATIC uint16_t max_mtu = BT_ATT_DEFAULT_LE_MTU; // 23
|
||||
STATIC unsigned long timeout = 5000;
|
||||
|
@ -33,7 +33,6 @@ Full Table of Contents
|
||||
design_guide
|
||||
porting
|
||||
common_hal
|
||||
reference/mpyfiles.rst
|
||||
reference/glossary.rst
|
||||
|
||||
.. toctree::
|
||||
|
@ -27,3 +27,55 @@ Classes
|
||||
|
||||
Append new elements as contained in `iterable` to the end of
|
||||
array, growing it.
|
||||
|
||||
.. method:: __getitem__(index)
|
||||
|
||||
Indexed read of the array, called as ``a[index]`` (where ``a`` is an ``array``).
|
||||
Returns a value if *index* is an ``int`` and an ``array`` if *index* is a slice.
|
||||
Negative indices count from the end and ``IndexError`` is thrown if the index is
|
||||
out of range.
|
||||
|
||||
**Note:** ``__getitem__`` cannot be called directly (``a.__getitem__(index)`` fails) and
|
||||
is not present in ``__dict__``, however ``a[index]`` does work.
|
||||
|
||||
.. method:: __setitem__(index, value)
|
||||
|
||||
Indexed write into the array, called as ``a[index] = value`` (where ``a`` is an ``array``).
|
||||
``value`` is a single value if *index* is an ``int`` and an ``array`` if *index* is a slice.
|
||||
Negative indices count from the end and ``IndexError`` is thrown if the index is out of range.
|
||||
|
||||
**Note:** ``__setitem__`` cannot be called directly (``a.__setitem__(index, value)`` fails) and
|
||||
is not present in ``__dict__``, however ``a[index] = value`` does work.
|
||||
|
||||
.. method:: __len__()
|
||||
|
||||
Returns the number of items in the array, called as ``len(a)`` (where ``a`` is an ``array``).
|
||||
|
||||
**Note:** ``__len__`` cannot be called directly (``a.__len__()`` fails) and the
|
||||
method is not present in ``__dict__``, however ``len(a)`` does work.
|
||||
|
||||
.. method:: __add__(other)
|
||||
|
||||
Return a new ``array`` that is the concatenation of the array with *other*, called as
|
||||
``a + other`` (where ``a`` and *other* are both ``arrays``).
|
||||
|
||||
**Note:** ``__add__`` cannot be called directly (``a.__add__(other)`` fails) and
|
||||
is not present in ``__dict__``, however ``a + other`` does work.
|
||||
|
||||
.. method:: __iadd__(other)
|
||||
|
||||
Concatenates the array with *other* in-place, called as ``a += other`` (where ``a`` and *other*
|
||||
are both ``arrays``). Equivalent to ``extend(other)``.
|
||||
|
||||
**Note:** ``__iadd__`` cannot be called directly (``a.__iadd__(other)`` fails) and
|
||||
is not present in ``__dict__``, however ``a += other`` does work.
|
||||
|
||||
.. method:: __repr__()
|
||||
|
||||
Returns the string representation of the array, called as ``str(a)`` or ``repr(a)```
|
||||
(where ``a`` is an ``array``). Returns the string ``"array(<type>, [<elements>])"``,
|
||||
where ``<type>`` is the type code letter for the array and ``<elements>`` is a comma
|
||||
separated list of the elements of the array.
|
||||
|
||||
**Note:** ``__repr__`` cannot be called directly (``a.__repr__()`` fails) and
|
||||
is not present in ``__dict__``, however ``str(a)`` and ``repr(a)`` both work.
|
||||
|
@ -52,7 +52,7 @@ Glossary
|
||||
cross-compiler
|
||||
Also known as ``mpy-cross``. This tool runs on your PC and converts a
|
||||
:term:`.py file` containing MicroPython code into a :term:`.mpy file`
|
||||
containing MicroPython bytecode. This means it loads faster (the board
|
||||
containing MicroPython :term:`bytecode`. This means it loads faster (the board
|
||||
doesn't have to compile the code), and uses less space on flash (the
|
||||
bytecode is more space efficient).
|
||||
|
||||
@ -112,6 +112,24 @@ Glossary
|
||||
require much less power. MicroPython is designed to be small and
|
||||
optimized enough to run on an average modern microcontroller.
|
||||
|
||||
micropython-lib
|
||||
MicroPython is (usually) distributed as a single executable/binary
|
||||
file with just few builtin modules. There is no extensive standard
|
||||
library comparable with :term:`CPython`'s. Instead, there is a related,
|
||||
but separate project `micropython-lib
|
||||
<https://github.com/micropython/micropython-lib>`_ which provides
|
||||
implementations for many modules from CPython's standard library.
|
||||
|
||||
Some of the modules are are implemented in pure Python, and are able to
|
||||
be used on all ports. However, the majority of these modules use
|
||||
:term:`FFI` to access operating system functionality, and as such can
|
||||
only be used on the :term:`MicroPython Unix port` (with limited support
|
||||
for Windows).
|
||||
|
||||
Unlike the :term:`CPython` stdlib, micropython-lib modules are
|
||||
intended to be installed individually - either using manual copying or
|
||||
using :term:`mip`.
|
||||
|
||||
MicroPython port
|
||||
MicroPython supports different :term:`boards <board>`, RTOSes, and
|
||||
OSes, and can be relatively easily adapted to new systems. MicroPython
|
||||
@ -133,16 +151,26 @@ Glossary
|
||||
machine-independent features. It can also function in a similar way to
|
||||
:term:`CPython`'s ``python`` executable.
|
||||
|
||||
mip
|
||||
A package installer for MicroPython (mip - "mip installs packages"). It
|
||||
installs MicroPython packages either from :term:`micropython-lib`,
|
||||
GitHub, or arbitrary URLs. mip can be used on-device on
|
||||
network-capable boards, and internally by tools such
|
||||
as :term:`mpremote`.
|
||||
|
||||
mpremote
|
||||
A tool for interacting with a MicroPython device.
|
||||
|
||||
.mpy file
|
||||
The output of the :term:`cross-compiler`. A compiled form of a
|
||||
:term:`.py file` that contains MicroPython bytecode instead of Python
|
||||
source code.
|
||||
:term:`.py file` that contains MicroPython :term:`bytecode` instead of
|
||||
Python source code.
|
||||
|
||||
native
|
||||
Usually refers to "native code", i.e. machine code for the target
|
||||
microcontroller (such as ARM Thumb, Xtensa, x86/x64). The ``@native``
|
||||
decorator can be applied to a MicroPython function to generate native
|
||||
code instead of bytecode for that function, which will likely be
|
||||
code instead of :term:`bytecode` for that function, which will likely be
|
||||
faster but use more RAM.
|
||||
|
||||
port
|
||||
@ -173,3 +201,12 @@ Glossary
|
||||
peripheral that sends data over a pair of pins (TX & RX). Many boards
|
||||
include a way to make at least one of the UARTs available to a host PC
|
||||
as a serial port over USB.
|
||||
|
||||
upip
|
||||
A now-obsolete package manager for MicroPython, inspired
|
||||
by :term:`CPython`'s pip, but much smaller and with reduced
|
||||
functionality. See its replacement, :term:`mip`.
|
||||
|
||||
webrepl
|
||||
A way of connecting to the REPL (and transferring files) on a device
|
||||
over the internet from a browser. See https://micropython.org/webrepl
|
||||
|
@ -1,199 +0,0 @@
|
||||
.. _mpy_files:
|
||||
|
||||
MicroPython .mpy files
|
||||
======================
|
||||
|
||||
MicroPython defines the concept of an .mpy file which is a binary container
|
||||
file format that holds precompiled code, and which can be imported like a
|
||||
normal .py module. The file ``foo.mpy`` can be imported via ``import foo``,
|
||||
as long as ``foo.mpy`` can be found in the usual way by the import machinery.
|
||||
Usually, each directory listed in ``sys.path`` is searched in order. When
|
||||
searching a particular directory ``foo.py`` is looked for first and if that
|
||||
is not found then ``foo.mpy`` is looked for, then the search continues in the
|
||||
next directory if neither is found. As such, ``foo.py`` will take precedence
|
||||
over ``foo.mpy``.
|
||||
|
||||
These .mpy files can contain bytecode which is usually generated from Python
|
||||
source files (.py files) via the ``mpy-cross`` program. For some architectures
|
||||
an .mpy file can also contain native machine code, which can be generated in
|
||||
a variety of ways, most notably from C source code.
|
||||
|
||||
Versioning and compatibility of .mpy files
|
||||
------------------------------------------
|
||||
|
||||
A given .mpy file may or may not be compatible with a given MicroPython system.
|
||||
Compatibility is based on the following:
|
||||
|
||||
* Version of the .mpy file: the version of the file must match the version
|
||||
supported by the system loading it.
|
||||
|
||||
* Sub-version of the .mpy file: if the .mpy file contains native machine code
|
||||
then the sub-version of the file must match the version support by the
|
||||
system loading it. Otherwise, if there is no native machine code in the .mpy
|
||||
file, then the sub-version is ignored when loading.
|
||||
|
||||
* Small integer bits: the .mpy file will require a minimum number of bits in
|
||||
a small integer and the system loading it must support at least this many
|
||||
bits.
|
||||
|
||||
* Native architecture: if the .mpy file contains native machine code then
|
||||
it will specify the architecture of that machine code and the system
|
||||
loading it must support execution of that architecture's code.
|
||||
|
||||
If a MicroPython system supports importing .mpy files then the
|
||||
``sys.implementation._mpy`` field will exist and return an integer which
|
||||
encodes the version (lower 8 bits), features and native architecture.
|
||||
|
||||
Trying to import an .mpy file that fails one of the first four tests will
|
||||
raise ``ValueError('incompatible .mpy file')``. Trying to import an .mpy
|
||||
file that fails the native architecture test (if it contains native machine
|
||||
code) will raise ``ValueError('incompatible .mpy arch')``.
|
||||
|
||||
If importing an .mpy file fails then try the following:
|
||||
|
||||
* Determine the .mpy version and flags supported by your MicroPython system
|
||||
by executing::
|
||||
|
||||
import sys
|
||||
sys_mpy = sys.implementation._mpy
|
||||
arch = [None, 'x86', 'x64',
|
||||
'armv6', 'armv6m', 'armv7m', 'armv7em', 'armv7emsp', 'armv7emdp',
|
||||
'xtensa', 'xtensawin'][sys_mpy >> 10]
|
||||
print('mpy version:', sys_mpy & 0xff)
|
||||
print('mpy flags:', end='')
|
||||
if arch:
|
||||
print(' -march=' + arch, end='')
|
||||
print()
|
||||
|
||||
* Check the validity of the .mpy file by inspecting the first two bytes of
|
||||
the file. The first byte should be an uppercase 'C' and the second byte
|
||||
will be the version number, which should match the system version from above.
|
||||
If it doesn't match then rebuild the .mpy file.
|
||||
|
||||
* Check if the system .mpy version matches the version emitted by ``mpy-cross``
|
||||
that was used to build the .mpy file, found by ``mpy-cross --version``.
|
||||
If it doesn't match then recompile ``mpy-cross`` from the Git repository
|
||||
checked out at the tag (or hash) reported by ``mpy-cross --version``.
|
||||
|
||||
* Make sure you are using the correct ``mpy-cross`` flags, found by the code
|
||||
above, or by inspecting the ``MPY_CROSS_FLAGS`` Makefile variable for the
|
||||
port that you are using.
|
||||
|
||||
The following table shows the correspondence between MicroPython release
|
||||
and .mpy version.
|
||||
|
||||
=================== ============
|
||||
MicroPython release .mpy version
|
||||
=================== ============
|
||||
v1.19 and up 6
|
||||
v1.12 - v1.18 5
|
||||
v1.11 4
|
||||
v1.9.3 - v1.10 3
|
||||
v1.9 - v1.9.2 2
|
||||
v1.5.1 - v1.8.7 0
|
||||
=================== ============
|
||||
|
||||
For completeness, the next table shows the Git commit of the main
|
||||
MicroPython repository at which the .mpy version was changed.
|
||||
|
||||
=================== ========================================
|
||||
.mpy version change Git commit
|
||||
=================== ========================================
|
||||
5 to 6 f2040bfc7ee033e48acef9f289790f3b4e6b74e5
|
||||
4 to 5 5716c5cf65e9b2cb46c2906f40302401bdd27517
|
||||
3 to 4 9a5f92ea72754c01cc03e5efcdfe94021120531e
|
||||
2 to 3 ff93fd4f50321c6190e1659b19e64fef3045a484
|
||||
1 to 2 dd11af209d226b7d18d5148b239662e30ed60bad
|
||||
0 to 1 6a11048af1d01c78bdacddadd1b72dc7ba7c6478
|
||||
initial version 0 d8c834c95d506db979ec871417de90b7951edc30
|
||||
=================== ========================================
|
||||
|
||||
Binary encoding of .mpy files
|
||||
-----------------------------
|
||||
|
||||
MicroPython .mpy files are a binary container format with code objects (bytecode
|
||||
and native machine code) stored internally in a nested hierarchy. The code for
|
||||
the outer module is stored first, and then its children follow. Each child may
|
||||
have further children, for example in the case of a class having methods, or a
|
||||
function defining a lambda or comprehension. To keep files small while still
|
||||
providing a large range of possible values it uses the concept of a
|
||||
variably-encoded-unsigned-integer (vuint) in many places. Similar to utf-8
|
||||
encoding, this encoding stores 7 bits per byte with the 8th bit (MSB) set
|
||||
if one or more bytes follow. The bits of the unsigned integer are stored
|
||||
in the vuint in LSB form.
|
||||
|
||||
The top-level of an .mpy file consists of three parts:
|
||||
|
||||
* The header.
|
||||
|
||||
* The global qstr and constant tables.
|
||||
|
||||
* The raw-code for the outer scope of the module.
|
||||
This outer scope is executed when the .mpy file is imported.
|
||||
|
||||
You can inspect the contents of a .mpy file by using ``mpy-tool.py``, for
|
||||
example (run from the root of the main MicroPython repository)::
|
||||
|
||||
$ ./tools/mpy-tool.py -xd myfile.mpy
|
||||
|
||||
The header
|
||||
~~~~~~~~~~
|
||||
|
||||
The .mpy header is:
|
||||
|
||||
====== ================================
|
||||
size field
|
||||
====== ================================
|
||||
byte value 0x43 (ASCII 'C')
|
||||
byte .mpy version number
|
||||
byte feature flags
|
||||
byte number of bits in a small int
|
||||
====== ================================
|
||||
|
||||
The global qstr and constant tables
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
An .mpy file contains a single qstr table, and a single constant object table.
|
||||
These are global to the .mpy file, they are referenced by all nested raw-code
|
||||
objects. The qstr table maps internal qstr number (internal to the .mpy file)
|
||||
to the resolved qstr number of the runtime that the .mpy file is imported into.
|
||||
This links the .mpy file with the rest of the system that it executes within.
|
||||
The constant object table is populated with references to all constant objects
|
||||
that the .mpy file needs.
|
||||
|
||||
====== ================================
|
||||
size field
|
||||
====== ================================
|
||||
vuint number of qstrs
|
||||
vuint number of constant objects
|
||||
... qstr data
|
||||
... encoded constant objects
|
||||
====== ================================
|
||||
|
||||
Raw code elements
|
||||
~~~~~~~~~~~~~~~~~
|
||||
|
||||
A raw-code element contains code, either bytecode or native machine code. Its
|
||||
contents are:
|
||||
|
||||
====== ================================
|
||||
size field
|
||||
====== ================================
|
||||
vuint type, size and whether there are sub-raw-code elements
|
||||
... code (bytecode or machine code)
|
||||
vuint number of sub-raw-code elements (only if non-zero)
|
||||
... sub-raw-code elements
|
||||
====== ================================
|
||||
|
||||
The first vuint in a raw-code element encodes the type of code stored in this
|
||||
element (the two least-significant bits), whether this raw-code has any
|
||||
children (the third least-significant bit), and the length of the code that
|
||||
follows (the amount of RAM to allocate for it).
|
||||
|
||||
Following the vuint comes the code itself. Unless the code type is viper code
|
||||
with relocations, this code is constant data and does not need to be modified.
|
||||
|
||||
If this raw-code has any children (as indicated by a bit in the first vuint),
|
||||
following the code comes a vuint counting the number of sub-raw-code elements.
|
||||
|
||||
Finally any sub-raw-code elements are stored, recursively.
|
5
docs/static/custom.css
vendored
Normal file
5
docs/static/custom.css
vendored
Normal file
@ -0,0 +1,5 @@
|
||||
/* Workaround to force Sphinx to render tables to 100% and wordwrap */
|
||||
/* See https://stackoverflow.com/questions/69359978/grid-table-does-not-word-wrap for more details */
|
||||
.wy-table-responsive table td, .wy-table-responsive table th {
|
||||
white-space: inherit;
|
||||
}
|
@ -32,8 +32,8 @@ void *memmove(void *dest, const void *src, size_t n) {
|
||||
return mp_fun_table.memmove_(dest, src, n);
|
||||
}
|
||||
|
||||
mp_obj_type_t match_type;
|
||||
mp_obj_type_t re_type;
|
||||
mp_obj_full_type_t match_type;
|
||||
mp_obj_full_type_t re_type;
|
||||
|
||||
#include "extmod/modure.c"
|
||||
|
||||
@ -54,21 +54,21 @@ mp_obj_t mpy_init(mp_obj_fun_bc_t *self, size_t n_args, size_t n_kw, mp_obj_t *a
|
||||
|
||||
match_type.base.type = (void*)&mp_fun_table.type_type;
|
||||
match_type.name = MP_QSTR_match;
|
||||
match_type.print = match_print;
|
||||
MP_OBJ_TYPE_SET_SLOT(&match_type, print, match_print, 0);
|
||||
match_locals_dict_table[0] = (mp_map_elem_t){ MP_OBJ_NEW_QSTR(MP_QSTR_group), MP_OBJ_FROM_PTR(&match_group_obj) };
|
||||
match_locals_dict_table[1] = (mp_map_elem_t){ MP_OBJ_NEW_QSTR(MP_QSTR_groups), MP_OBJ_FROM_PTR(&match_groups_obj) };
|
||||
match_locals_dict_table[2] = (mp_map_elem_t){ MP_OBJ_NEW_QSTR(MP_QSTR_span), MP_OBJ_FROM_PTR(&match_span_obj) };
|
||||
match_locals_dict_table[3] = (mp_map_elem_t){ MP_OBJ_NEW_QSTR(MP_QSTR_start), MP_OBJ_FROM_PTR(&match_start_obj) };
|
||||
match_locals_dict_table[4] = (mp_map_elem_t){ MP_OBJ_NEW_QSTR(MP_QSTR_end), MP_OBJ_FROM_PTR(&match_end_obj) };
|
||||
match_type.locals_dict = (void*)&match_locals_dict;
|
||||
MP_OBJ_TYPE_SET_SLOT(&match_type, locals_dict, (void*)&match_locals_dict, 1);
|
||||
|
||||
re_type.base.type = (void*)&mp_fun_table.type_type;
|
||||
re_type.name = MP_QSTR_ure;
|
||||
re_type.print = re_print;
|
||||
MP_OBJ_TYPE_SET_SLOT(&re_type, print, re_print, 0);
|
||||
re_locals_dict_table[0] = (mp_map_elem_t){ MP_OBJ_NEW_QSTR(MP_QSTR_match), MP_OBJ_FROM_PTR(&re_match_obj) };
|
||||
re_locals_dict_table[1] = (mp_map_elem_t){ MP_OBJ_NEW_QSTR(MP_QSTR_search), MP_OBJ_FROM_PTR(&re_search_obj) };
|
||||
re_locals_dict_table[2] = (mp_map_elem_t){ MP_OBJ_NEW_QSTR(MP_QSTR_split), MP_OBJ_FROM_PTR(&re_split_obj) };
|
||||
re_type.locals_dict = (void*)&re_locals_dict;
|
||||
MP_OBJ_TYPE_SET_SLOT(&re_type, locals_dict, (void*)&re_locals_dict, 1);
|
||||
|
||||
mp_store_global(MP_QSTR_compile, MP_OBJ_FROM_PTR(&mod_re_compile_obj));
|
||||
mp_store_global(MP_QSTR_match, MP_OBJ_FROM_PTR(&re_match_obj));
|
||||
|
@ -9,7 +9,6 @@ void *memset(void *s, int c, size_t n) {
|
||||
#endif
|
||||
|
||||
mp_obj_full_type_t decompio_type;
|
||||
mp_stream_p_t decompio_stream_p;
|
||||
|
||||
#include "extmod/moduzlib.c"
|
||||
|
||||
@ -19,18 +18,14 @@ STATIC MP_DEFINE_CONST_DICT(decompio_locals_dict, decompio_locals_dict_table);
|
||||
mp_obj_t mpy_init(mp_obj_fun_bc_t *self, size_t n_args, size_t n_kw, mp_obj_t *args) {
|
||||
MP_DYNRUNTIME_INIT_ENTRY
|
||||
|
||||
decompio_stream_p.name = MP_QSTR_protocol_stream;
|
||||
decompio_stream_p.read = decompio_read;
|
||||
|
||||
decompio_type.base.type = mp_fun_table.type_type;
|
||||
decompio_type.flags = MP_TYPE_FLAG_EXTENDED;
|
||||
decompio_type.name = MP_QSTR_DecompIO;
|
||||
decompio_type.make_new = decompio_make_new;
|
||||
decompio_type.ext[0].protocol = &decompio_stream_p;
|
||||
MP_OBJ_TYPE_SET_SLOT(&decompio_type, make_new, &decompio_make_new, 0);
|
||||
MP_OBJ_TYPE_SET_SLOT(&decompio_type, protocol, &decompio_stream_p, 1);
|
||||
decompio_locals_dict_table[0] = (mp_map_elem_t){ MP_OBJ_NEW_QSTR(MP_QSTR_read), MP_OBJ_FROM_PTR(&mp_stream_read_obj) };
|
||||
decompio_locals_dict_table[1] = (mp_map_elem_t){ MP_OBJ_NEW_QSTR(MP_QSTR_readinto), MP_OBJ_FROM_PTR(&mp_stream_readinto_obj) };
|
||||
decompio_locals_dict_table[2] = (mp_map_elem_t){ MP_OBJ_NEW_QSTR(MP_QSTR_readline), MP_OBJ_FROM_PTR(&mp_stream_unbuffered_readline_obj) };
|
||||
decompio_type.locals_dict = (void*)&decompio_locals_dict;
|
||||
MP_OBJ_TYPE_SET_SLOT(&decompio_type, locals_dict, (void*)&decompio_locals_dict, 2);
|
||||
|
||||
mp_store_global(MP_QSTR___name__, MP_OBJ_NEW_QSTR(MP_QSTR_uzlib));
|
||||
mp_store_global(MP_QSTR_decompress, MP_OBJ_FROM_PTR(&mod_uzlib_decompress_obj));
|
||||
|
@ -1,6 +1,9 @@
|
||||
// Include MicroPython API.
|
||||
#include "py/runtime.h"
|
||||
|
||||
// Used to get the time in the Timer class example.
|
||||
#include "py/mphal.h"
|
||||
|
||||
// This is the function which will be called from Python as cexample.add_ints(a, b).
|
||||
STATIC mp_obj_t example_add_ints(mp_obj_t a_obj, mp_obj_t b_obj) {
|
||||
// Extract the ints from the micropython input objects.
|
||||
@ -13,6 +16,58 @@ STATIC mp_obj_t example_add_ints(mp_obj_t a_obj, mp_obj_t b_obj) {
|
||||
// Define a Python reference to the function above.
|
||||
STATIC MP_DEFINE_CONST_FUN_OBJ_2(example_add_ints_obj, example_add_ints);
|
||||
|
||||
// This structure represents Timer instance objects.
|
||||
typedef struct _example_Timer_obj_t {
|
||||
// All objects start with the base.
|
||||
mp_obj_base_t base;
|
||||
// Everything below can be thought of as instance attributes, but they
|
||||
// cannot be accessed by MicroPython code directly. In this example we
|
||||
// store the time at which the object was created.
|
||||
mp_uint_t start_time;
|
||||
} example_Timer_obj_t;
|
||||
|
||||
// This is the Timer.time() method. After creating a Timer object, this
|
||||
// can be called to get the time elapsed since creating the Timer.
|
||||
STATIC mp_obj_t example_Timer_time(mp_obj_t self_in) {
|
||||
// The first argument is self. It is cast to the *example_Timer_obj_t
|
||||
// type so we can read its attributes.
|
||||
example_Timer_obj_t *self = MP_OBJ_TO_PTR(self_in);
|
||||
|
||||
// Get the elapsed time and return it as a MicroPython integer.
|
||||
mp_uint_t elapsed = mp_hal_ticks_ms() - self->start_time;
|
||||
return mp_obj_new_int_from_uint(elapsed);
|
||||
}
|
||||
STATIC MP_DEFINE_CONST_FUN_OBJ_1(example_Timer_time_obj, example_Timer_time);
|
||||
|
||||
// This represents Timer.__new__ and Timer.__init__, which is called when
|
||||
// the user instantiates a Timer object.
|
||||
STATIC mp_obj_t example_Timer_make_new(const mp_obj_type_t *type, size_t n_args, size_t n_kw, const mp_obj_t *args) {
|
||||
// Allocates the new object and sets the type.
|
||||
example_Timer_obj_t *self = mp_obj_malloc(example_Timer_obj_t, type);
|
||||
|
||||
// Initializes the time for this Timer instance.
|
||||
self->start_time = mp_hal_ticks_ms();
|
||||
|
||||
// The make_new function always returns self.
|
||||
return MP_OBJ_FROM_PTR(self);
|
||||
}
|
||||
|
||||
// This collects all methods and other static class attributes of the Timer.
|
||||
// The table structure is similar to the module table, as detailed below.
|
||||
STATIC const mp_rom_map_elem_t example_Timer_locals_dict_table[] = {
|
||||
{ MP_ROM_QSTR(MP_QSTR_time), MP_ROM_PTR(&example_Timer_time_obj) },
|
||||
};
|
||||
STATIC MP_DEFINE_CONST_DICT(example_Timer_locals_dict, example_Timer_locals_dict_table);
|
||||
|
||||
// This defines the type(Timer) object.
|
||||
MP_DEFINE_CONST_OBJ_TYPE(
|
||||
example_type_Timer,
|
||||
MP_QSTR_Timer,
|
||||
MP_TYPE_FLAG_NONE,
|
||||
make_new, example_Timer_make_new,
|
||||
locals_dict, &example_Timer_locals_dict
|
||||
);
|
||||
|
||||
// Define all properties of the module.
|
||||
// Table entries are key/value pairs of the attribute name (a string)
|
||||
// and the MicroPython object reference.
|
||||
@ -21,6 +76,7 @@ STATIC MP_DEFINE_CONST_FUN_OBJ_2(example_add_ints_obj, example_add_ints);
|
||||
STATIC const mp_rom_map_elem_t example_module_globals_table[] = {
|
||||
{ MP_ROM_QSTR(MP_QSTR___name__), MP_ROM_QSTR(MP_QSTR_cexample) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_add_ints), MP_ROM_PTR(&example_add_ints_obj) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_Timer), MP_ROM_PTR(&example_type_Timer) },
|
||||
};
|
||||
STATIC MP_DEFINE_CONST_DICT(example_module_globals, example_module_globals_table);
|
||||
|
||||
|
160
extmod/extmod.mk
160
extmod/extmod.mk
@ -1,4 +1,41 @@
|
||||
# This makefile fragment provides rules to build 3rd-party components for extmod modules
|
||||
# This makefile fragment adds the source code files for the core extmod modules
|
||||
# and provides rules to build 3rd-party components for extmod modules.
|
||||
|
||||
SRC_EXTMOD_C += \
|
||||
extmod/moduasyncio.c \
|
||||
extmod/modubinascii.c \
|
||||
extmod/moductypes.c \
|
||||
extmod/moduhashlib.c \
|
||||
extmod/moduheapq.c \
|
||||
extmod/modujson.c \
|
||||
extmod/moduos.c \
|
||||
extmod/moduplatform.c\
|
||||
extmod/modurandom.c \
|
||||
extmod/modure.c \
|
||||
extmod/moduselect.c \
|
||||
extmod/moduzlib.c \
|
||||
extmod/utime_mphal.c \
|
||||
extmod/vfs.c \
|
||||
extmod/vfs_blockdev.c \
|
||||
extmod/vfs_fat.c \
|
||||
extmod/vfs_fat_diskio.c \
|
||||
extmod/vfs_fat_file.c \
|
||||
extmod/vfs_lfs.c \
|
||||
extmod/vfs_posix.c \
|
||||
extmod/vfs_posix_file.c \
|
||||
extmod/vfs_reader.c \
|
||||
extmod/virtpin.c \
|
||||
shared/libc/abort_.c \
|
||||
shared/libc/printf.c \
|
||||
|
||||
SRC_THIRDPARTY_C += \
|
||||
|
||||
PY_O += $(addprefix $(BUILD)/, $(SRC_EXTMOD_C:.c=.o))
|
||||
PY_O += $(addprefix $(BUILD)/, $(SRC_THIRDPARTY_C:.c=.o))
|
||||
SRC_QSTR += $(SRC_EXTMOD_C)
|
||||
|
||||
CFLAGS += $(CFLAGS_EXTMOD) $(CFLAGS_THIRDPARTY)
|
||||
LDFLAGS += $(LDFLAGS_EXTMOD) $(LDFLAGS_THIRDPARTY)
|
||||
|
||||
################################################################################
|
||||
# VFS FAT FS
|
||||
@ -6,11 +43,11 @@
|
||||
OOFATFS_DIR = lib/oofatfs
|
||||
|
||||
# this sets the config file for FatFs
|
||||
CFLAGS_MOD += -DFFCONF_H=\"$(OOFATFS_DIR)/ffconf.h\"
|
||||
CFLAGS_THIRDPARTY += -DFFCONF_H=\"$(OOFATFS_DIR)/ffconf.h\"
|
||||
|
||||
ifeq ($(MICROPY_VFS_FAT),1)
|
||||
CFLAGS_MOD += -DMICROPY_VFS_FAT=1
|
||||
SRC_MOD += $(addprefix $(OOFATFS_DIR)/,\
|
||||
CFLAGS_EXTMOD += -DMICROPY_VFS_FAT=1
|
||||
SRC_THIRDPARTY_C += $(addprefix $(OOFATFS_DIR)/,\
|
||||
ff.c \
|
||||
ffunicode.c \
|
||||
)
|
||||
@ -22,18 +59,18 @@ endif
|
||||
LITTLEFS_DIR = lib/littlefs
|
||||
|
||||
ifeq ($(MICROPY_VFS_LFS1),1)
|
||||
CFLAGS_MOD += -DMICROPY_VFS_LFS1=1
|
||||
CFLAGS_MOD += -DLFS1_NO_MALLOC -DLFS1_NO_DEBUG -DLFS1_NO_WARN -DLFS1_NO_ERROR -DLFS1_NO_ASSERT
|
||||
SRC_MOD += $(addprefix $(LITTLEFS_DIR)/,\
|
||||
CFLAGS_EXTMOD += -DMICROPY_VFS_LFS1=1
|
||||
CFLAGS_THIRDPARTY += -DLFS1_NO_MALLOC -DLFS1_NO_DEBUG -DLFS1_NO_WARN -DLFS1_NO_ERROR -DLFS1_NO_ASSERT
|
||||
SRC_THIRDPARTY_C += $(addprefix $(LITTLEFS_DIR)/,\
|
||||
lfs1.c \
|
||||
lfs1_util.c \
|
||||
)
|
||||
endif
|
||||
|
||||
ifeq ($(MICROPY_VFS_LFS2),1)
|
||||
CFLAGS_MOD += -DMICROPY_VFS_LFS2=1
|
||||
CFLAGS_MOD += -DLFS2_NO_MALLOC -DLFS2_NO_DEBUG -DLFS2_NO_WARN -DLFS2_NO_ERROR -DLFS2_NO_ASSERT
|
||||
SRC_MOD += $(addprefix $(LITTLEFS_DIR)/,\
|
||||
CFLAGS_EXTMOD += -DMICROPY_VFS_LFS2=1
|
||||
CFLAGS_THIRDPARTY += -DLFS2_NO_MALLOC -DLFS2_NO_DEBUG -DLFS2_NO_WARN -DLFS2_NO_ERROR -DLFS2_NO_ASSERT
|
||||
SRC_THIRDPARTY_C += $(addprefix $(LITTLEFS_DIR)/,\
|
||||
lfs2.c \
|
||||
lfs2_util.c \
|
||||
)
|
||||
@ -45,12 +82,14 @@ endif
|
||||
# ussl
|
||||
|
||||
ifeq ($(MICROPY_PY_USSL),1)
|
||||
CFLAGS_MOD += -DMICROPY_PY_USSL=1
|
||||
CFLAGS_EXTMOD += -DMICROPY_PY_USSL=1
|
||||
ifeq ($(MICROPY_SSL_AXTLS),1)
|
||||
CFLAGS_MOD += -DMICROPY_SSL_AXTLS=1 -I$(TOP)/lib/axtls/ssl -I$(TOP)/lib/axtls/crypto -I$(TOP)/extmod/axtls-include
|
||||
AXTLS_DIR = lib/axtls
|
||||
GIT_SUBMODULES += $(AXTLS_DIR)
|
||||
CFLAGS_EXTMOD += -DMICROPY_SSL_AXTLS=1 -I$(TOP)/lib/axtls/ssl -I$(TOP)/lib/axtls/crypto -I$(TOP)/extmod/axtls-include
|
||||
$(BUILD)/$(AXTLS_DIR)/%.o: CFLAGS += -Wno-all -Wno-unused-parameter -Wno-uninitialized -Wno-sign-compare -Wno-old-style-definition -Dmp_stream_errno=errno $(AXTLS_DEFS_EXTRA)
|
||||
SRC_MOD += $(addprefix $(AXTLS_DIR)/,\
|
||||
SRC_THIRDPARTY_C += $(addprefix $(AXTLS_DIR)/,\
|
||||
ssl/asn1.c \
|
||||
ssl/loader.c \
|
||||
ssl/tls1.c \
|
||||
@ -67,8 +106,12 @@ SRC_MOD += $(addprefix $(AXTLS_DIR)/,\
|
||||
)
|
||||
else ifeq ($(MICROPY_SSL_MBEDTLS),1)
|
||||
MBEDTLS_DIR = lib/mbedtls
|
||||
CFLAGS_MOD += -DMICROPY_SSL_MBEDTLS=1 -I$(TOP)/$(MBEDTLS_DIR)/include
|
||||
SRC_MOD += $(addprefix $(MBEDTLS_DIR)/library/,\
|
||||
MBEDTLS_CONFIG_FILE ?= \"mbedtls/mbedtls_config.h\"
|
||||
GIT_SUBMODULES += $(MBEDTLS_DIR)
|
||||
CFLAGS_EXTMOD += -DMBEDTLS_CONFIG_FILE=$(MBEDTLS_CONFIG_FILE)
|
||||
CFLAGS_EXTMOD += -DMICROPY_SSL_MBEDTLS=1 -I$(TOP)/$(MBEDTLS_DIR)/include
|
||||
SRC_THIRDPARTY_C += lib/mbedtls_errors/mp_mbedtls_errors.c
|
||||
SRC_THIRDPARTY_C += $(addprefix $(MBEDTLS_DIR)/library/,\
|
||||
aes.c \
|
||||
aesni.c \
|
||||
arc4.c \
|
||||
@ -96,7 +139,6 @@ SRC_MOD += $(addprefix $(MBEDTLS_DIR)/library/,\
|
||||
ecp_curves.c \
|
||||
entropy.c \
|
||||
entropy_poll.c \
|
||||
error.c \
|
||||
gcm.c \
|
||||
havege.c \
|
||||
hmac_drbg.c \
|
||||
@ -148,13 +190,14 @@ endif
|
||||
# lwip
|
||||
|
||||
ifeq ($(MICROPY_PY_LWIP),1)
|
||||
GIT_SUBMODULES += lib/lwip
|
||||
# A port should add an include path where lwipopts.h can be found (eg extmod/lwip-include)
|
||||
LWIP_DIR = lib/lwip/src
|
||||
INC += -I$(TOP)/$(LWIP_DIR)/include
|
||||
CFLAGS_MOD += -DMICROPY_PY_LWIP=1
|
||||
$(BUILD)/$(LWIP_DIR)/core/ipv4/dhcp.o: CFLAGS_MOD += -Wno-address
|
||||
SRC_MOD += extmod/modlwip.c shared/netutils/netutils.c
|
||||
SRC_MOD += $(addprefix $(LWIP_DIR)/,\
|
||||
CFLAGS_EXTMOD += -DMICROPY_PY_LWIP=1
|
||||
$(BUILD)/$(LWIP_DIR)/core/ipv4/dhcp.o: CFLAGS += -Wno-address
|
||||
SRC_THIRDPARTY_C += shared/netutils/netutils.c
|
||||
SRC_THIRDPARTY_C += $(addprefix $(LWIP_DIR)/,\
|
||||
apps/mdns/mdns.c \
|
||||
core/def.c \
|
||||
core/dns.c \
|
||||
@ -193,8 +236,8 @@ SRC_MOD += $(addprefix $(LWIP_DIR)/,\
|
||||
netif/ethernet.c \
|
||||
)
|
||||
ifeq ($(MICROPY_PY_LWIP_SLIP),1)
|
||||
CFLAGS_MOD += -DMICROPY_PY_LWIP_SLIP=1
|
||||
SRC_MOD += $(LWIP_DIR)/netif/slipif.c
|
||||
CFLAGS_EXTMOD += -DMICROPY_PY_LWIP_SLIP=1
|
||||
SRC_THIRDPARTY_C += $(LWIP_DIR)/netif/slipif.c
|
||||
endif
|
||||
endif
|
||||
|
||||
@ -205,8 +248,7 @@ ifeq ($(MICROPY_PY_BTREE),1)
|
||||
BTREE_DIR = lib/berkeley-db-1.xx
|
||||
BTREE_DEFS = -D__DBINTERFACE_PRIVATE=1 -Dmpool_error=printf -Dabort=abort_ "-Dvirt_fd_t=void*" $(BTREE_DEFS_EXTRA)
|
||||
INC += -I$(TOP)/$(BTREE_DIR)/PORT/include
|
||||
SRC_MOD += extmod/modbtree.c
|
||||
SRC_MOD += $(addprefix $(BTREE_DIR)/,\
|
||||
SRC_THIRDPARTY_C += $(addprefix $(BTREE_DIR)/,\
|
||||
btree/bt_close.c \
|
||||
btree/bt_conv.c \
|
||||
btree/bt_debug.c \
|
||||
@ -222,9 +264,79 @@ SRC_MOD += $(addprefix $(BTREE_DIR)/,\
|
||||
btree/bt_utils.c \
|
||||
mpool/mpool.c \
|
||||
)
|
||||
CFLAGS_MOD += -DMICROPY_PY_BTREE=1
|
||||
CFLAGS_EXTMOD += -DMICROPY_PY_BTREE=1
|
||||
# we need to suppress certain warnings to get berkeley-db to compile cleanly
|
||||
# and we have separate BTREE_DEFS so the definitions don't interfere with other source code
|
||||
$(BUILD)/$(BTREE_DIR)/%.o: CFLAGS += -Wno-old-style-definition -Wno-sign-compare -Wno-unused-parameter $(BTREE_DEFS)
|
||||
$(BUILD)/extmod/modbtree.o: CFLAGS += $(BTREE_DEFS)
|
||||
endif
|
||||
|
||||
################################################################################
|
||||
# networking
|
||||
|
||||
ifeq ($(MICROPY_PY_NETWORK_CYW43),1)
|
||||
CYW43_DIR = lib/cyw43-driver
|
||||
GIT_SUBMODULES += $(CYW43_DIR)
|
||||
CFLAGS_EXTMOD += -DMICROPY_PY_NETWORK_CYW43=1
|
||||
SRC_THIRDPARTY_C += $(addprefix $(CYW43_DIR)/src/,\
|
||||
cyw43_ctrl.c \
|
||||
cyw43_lwip.c \
|
||||
cyw43_ll.c \
|
||||
cyw43_sdio.c \
|
||||
cyw43_stats.c \
|
||||
)
|
||||
ifeq ($(MICROPY_PY_BLUETOOTH),1)
|
||||
DRIVERS_SRC_C += drivers/cyw43/cywbt.c
|
||||
endif
|
||||
|
||||
$(BUILD)/$(CYW43_DIR)/src/cyw43_%.o: CFLAGS += -std=c11
|
||||
endif # MICROPY_PY_NETWORK_CYW43
|
||||
|
||||
ifneq ($(MICROPY_PY_NETWORK_WIZNET5K),)
|
||||
ifneq ($(MICROPY_PY_NETWORK_WIZNET5K),0)
|
||||
WIZNET5K_DIR=lib/wiznet5k
|
||||
GIT_SUBMODULES += lib/wiznet5k
|
||||
INC += -I$(TOP)/$(WIZNET5K_DIR) -I$(TOP)/$(WIZNET5K_DIR)/Ethernet
|
||||
CFLAGS += -DMICROPY_PY_NETWORK_WIZNET5K=$(MICROPY_PY_NETWORK_WIZNET5K) -D_WIZCHIP_=$(MICROPY_PY_NETWORK_WIZNET5K)
|
||||
CFLAGS_THIRDPARTY += -DWIZCHIP_PREFIXED_EXPORTS=1
|
||||
ifeq ($(MICROPY_PY_LWIP),1)
|
||||
# When using MACRAW mode (with lwIP), maximum buffer space must be used for the raw socket
|
||||
CFLAGS_THIRDPARTY += -DWIZCHIP_USE_MAX_BUFFER
|
||||
endif
|
||||
SRC_THIRDPARTY_C += $(addprefix $(WIZNET5K_DIR)/,\
|
||||
Ethernet/W$(MICROPY_PY_NETWORK_WIZNET5K)/w$(MICROPY_PY_NETWORK_WIZNET5K).c \
|
||||
Ethernet/wizchip_conf.c \
|
||||
Ethernet/socket.c \
|
||||
Internet/DNS/dns.c \
|
||||
Internet/DHCP/dhcp.c \
|
||||
)
|
||||
endif
|
||||
endif
|
||||
|
||||
################################################################################
|
||||
# bluetooth
|
||||
|
||||
ifeq ($(MICROPY_PY_BLUETOOTH),1)
|
||||
CFLAGS_EXTMOD += -DMICROPY_PY_BLUETOOTH=1
|
||||
|
||||
ifeq ($(MICROPY_BLUETOOTH_NIMBLE),1)
|
||||
ifeq ($(MICROPY_BLUETOOTH_BTSTACK),1)
|
||||
$(error Cannot enable both NimBLE and BTstack at the same time)
|
||||
endif
|
||||
endif
|
||||
|
||||
ifneq ($(MICROPY_BLUETOOTH_NIMBLE),1)
|
||||
ifneq ($(MICROPY_BLUETOOTH_BTSTACK),1)
|
||||
$(error Must enable one of MICROPY_BLUETOOTH_NIMBLE or MICROPY_BLUETOOTH_BTSTACK)
|
||||
endif
|
||||
endif
|
||||
|
||||
ifeq ($(MICROPY_BLUETOOTH_NIMBLE),1)
|
||||
include $(TOP)/extmod/nimble/nimble.mk
|
||||
endif
|
||||
|
||||
ifeq ($(MICROPY_BLUETOOTH_BTSTACK),1)
|
||||
include $(TOP)/extmod/btstack/btstack.mk
|
||||
endif
|
||||
|
||||
endif
|
||||
|
@ -35,8 +35,6 @@
|
||||
#include "shared-bindings/supervisor/__init__.h"
|
||||
#endif
|
||||
|
||||
#include "supervisor/shared/translate/translate.h"
|
||||
|
||||
// Used when task cannot be guaranteed to be non-NULL.
|
||||
#define TASK_PAIRHEAP(task) ((task) ? &(task)->pairheap : NULL)
|
||||
|
||||
@ -65,32 +63,19 @@ STATIC const mp_obj_type_t task_queue_type;
|
||||
STATIC const mp_obj_type_t task_type;
|
||||
|
||||
STATIC mp_obj_t task_queue_make_new(const mp_obj_type_t *type, size_t n_args, size_t n_kw, const mp_obj_t *args);
|
||||
STATIC mp_obj_t task_getiter(mp_obj_t self_in, mp_obj_iter_buf_t *iter_buf);
|
||||
|
||||
/******************************************************************************/
|
||||
// Ticks for task ordering in pairing heap
|
||||
|
||||
// CIRCUITPY-style ticks
|
||||
#define _TICKS_PERIOD (1lu << 29)
|
||||
#define _TICKS_MAX (_TICKS_PERIOD - 1)
|
||||
#define _TICKS_HALFPERIOD (_TICKS_PERIOD >> 1)
|
||||
#if !CIRCUITPY || (defined(__unix__) || defined(__APPLE__))
|
||||
STATIC mp_obj_t ticks(void) {
|
||||
return MP_OBJ_NEW_SMALL_INT(mp_hal_ticks_ms() & _TICKS_MAX);
|
||||
return MP_OBJ_NEW_SMALL_INT(mp_hal_ticks_ms() & (MICROPY_PY_UTIME_TICKS_PERIOD - 1));
|
||||
}
|
||||
#else
|
||||
// We don't share the implementation above because our supervisor_ticks_ms
|
||||
// starts the epoch about 65 seconds before the first overflow (see
|
||||
// shared-bindings/supervisor/__init__.c). We assume/require that
|
||||
// supervisor.ticks_ms is picked as the ticks implementation under
|
||||
// CircuitPython for the Python-coded bits of asyncio.
|
||||
#define ticks() supervisor_ticks_ms()
|
||||
#endif
|
||||
|
||||
STATIC mp_int_t ticks_diff(mp_obj_t t1_in, mp_obj_t t0_in) {
|
||||
mp_uint_t t0 = MP_OBJ_SMALL_INT_VALUE(t0_in);
|
||||
mp_uint_t t1 = MP_OBJ_SMALL_INT_VALUE(t1_in);
|
||||
mp_int_t diff = ((t1 - t0 + _TICKS_HALFPERIOD) & _TICKS_MAX) - _TICKS_HALFPERIOD;
|
||||
mp_int_t diff = ((t1 - t0 + MICROPY_PY_UTIME_TICKS_PERIOD / 2) & (MICROPY_PY_UTIME_TICKS_PERIOD - 1))
|
||||
- MICROPY_PY_UTIME_TICKS_PERIOD / 2;
|
||||
return diff;
|
||||
}
|
||||
|
||||
@ -161,19 +146,20 @@ STATIC const mp_rom_map_elem_t task_queue_locals_dict_table[] = {
|
||||
{ MP_ROM_QSTR(MP_QSTR_pop), MP_ROM_PTR(&task_queue_pop_obj) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_remove), MP_ROM_PTR(&task_queue_remove_obj) },
|
||||
|
||||
// CIRCUITPYTHON: remove these after the bundle need not support 8.x
|
||||
// CIRCUITPYTHON: Remove these in CircuitPython 10.0.0
|
||||
{ MP_ROM_QSTR(MP_QSTR_push_head), MP_ROM_PTR(&task_queue_push_obj) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_push_sorted), MP_ROM_PTR(&task_queue_push_obj) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_pop_head), MP_ROM_PTR(&task_queue_pop_obj) },
|
||||
};
|
||||
STATIC MP_DEFINE_CONST_DICT(task_queue_locals_dict, task_queue_locals_dict_table);
|
||||
|
||||
STATIC const mp_obj_type_t task_queue_type = {
|
||||
{ &mp_type_type },
|
||||
.name = MP_QSTR_TaskQueue,
|
||||
.make_new = task_queue_make_new,
|
||||
.locals_dict = (mp_obj_dict_t *)&task_queue_locals_dict,
|
||||
};
|
||||
STATIC MP_DEFINE_CONST_OBJ_TYPE(
|
||||
task_queue_type,
|
||||
MP_QSTR_TaskQueue,
|
||||
MP_TYPE_FLAG_NONE,
|
||||
make_new, task_queue_make_new,
|
||||
locals_dict, &task_queue_locals_dict
|
||||
);
|
||||
|
||||
/******************************************************************************/
|
||||
// Task class
|
||||
@ -248,6 +234,8 @@ STATIC mp_obj_t task_cancel(mp_obj_t self_in) {
|
||||
STATIC MP_DEFINE_CONST_FUN_OBJ_1(task_cancel_obj, task_cancel);
|
||||
|
||||
// CIRCUITPY provides __await__().
|
||||
STATIC mp_obj_t task_getiter(mp_obj_t self_in, mp_obj_iter_buf_t *iter_buf);
|
||||
|
||||
STATIC mp_obj_t task_await(mp_obj_t self_in) {
|
||||
return task_getiter(self_in, NULL);
|
||||
}
|
||||
@ -271,7 +259,6 @@ STATIC void task_attr(mp_obj_t self_in, qstr attr, mp_obj_t *dest) {
|
||||
dest[1] = self_in;
|
||||
} else if (attr == MP_QSTR_ph_key) {
|
||||
dest[0] = self->ph_key;
|
||||
// CIRCUITPY provides __await__().
|
||||
} else if (attr == MP_QSTR___await__) {
|
||||
dest[0] = MP_OBJ_FROM_PTR(&task_await_obj);
|
||||
dest[1] = self_in;
|
||||
@ -307,7 +294,6 @@ STATIC mp_obj_t task_getiter(mp_obj_t self_in, mp_obj_iter_buf_t *iter_buf) {
|
||||
STATIC mp_obj_t task_iternext(mp_obj_t self_in) {
|
||||
mp_obj_task_t *self = MP_OBJ_TO_PTR(self_in);
|
||||
if (TASK_IS_DONE(self)) {
|
||||
// CIRCUITPY
|
||||
if (self->data == mp_const_none) {
|
||||
// Task finished but has already been sent to the loop's exception handler.
|
||||
mp_raise_StopIteration(MP_OBJ_NULL);
|
||||
@ -326,27 +312,25 @@ STATIC mp_obj_t task_iternext(mp_obj_t self_in) {
|
||||
return mp_const_none;
|
||||
}
|
||||
|
||||
STATIC const mp_obj_type_t task_type = {
|
||||
{ &mp_type_type },
|
||||
.flags = MP_TYPE_FLAG_EXTENDED,
|
||||
.name = MP_QSTR_Task,
|
||||
.make_new = task_make_new,
|
||||
.attr = task_attr,
|
||||
MP_TYPE_EXTENDED_FIELDS(
|
||||
.getiter = task_getiter,
|
||||
.iternext = task_iternext,
|
||||
),
|
||||
STATIC const mp_getiter_iternext_custom_t task_getiter_iternext = {
|
||||
.getiter = task_getiter,
|
||||
.iternext = task_iternext,
|
||||
};
|
||||
|
||||
STATIC MP_DEFINE_CONST_OBJ_TYPE(
|
||||
task_type,
|
||||
MP_QSTR_Task,
|
||||
MP_TYPE_FLAG_ITER_IS_CUSTOM,
|
||||
make_new, task_make_new,
|
||||
attr, task_attr,
|
||||
iter, &task_getiter_iternext
|
||||
);
|
||||
|
||||
/******************************************************************************/
|
||||
// C-level uasyncio module
|
||||
|
||||
STATIC const mp_rom_map_elem_t mp_module_uasyncio_globals_table[] = {
|
||||
#if CIRCUITPY
|
||||
{ MP_ROM_QSTR(MP_QSTR___name__), MP_ROM_QSTR(MP_QSTR__asyncio) },
|
||||
#else
|
||||
{ MP_ROM_QSTR(MP_QSTR___name__), MP_ROM_QSTR(MP_QSTR__uasyncio) },
|
||||
#endif
|
||||
{ MP_ROM_QSTR(MP_QSTR_TaskQueue), MP_ROM_PTR(&task_queue_type) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_Task), MP_ROM_PTR(&task_type) },
|
||||
};
|
||||
|
@ -30,8 +30,9 @@
|
||||
|
||||
#include "py/runtime.h"
|
||||
#include "py/binary.h"
|
||||
#include "py/objstr.h"
|
||||
|
||||
#include "supervisor/shared/translate/translate.h"
|
||||
#include "lib/uzlib/tinf.h"
|
||||
|
||||
#if MICROPY_PY_UBINASCII
|
||||
|
||||
@ -42,76 +43,19 @@ static void check_not_unicode(const mp_obj_t arg) {
|
||||
}
|
||||
#endif
|
||||
}
|
||||
STATIC mp_obj_t mod_binascii_hexlify(size_t n_args, const mp_obj_t *args) {
|
||||
// First argument is the data to convert.
|
||||
// Second argument is an optional separator to be used between values.
|
||||
const char *sep = NULL;
|
||||
mp_buffer_info_t bufinfo;
|
||||
check_not_unicode(args[0]);
|
||||
mp_get_buffer_raise(args[0], &bufinfo, MP_BUFFER_READ);
|
||||
|
||||
// Code below assumes non-zero buffer length when computing size with
|
||||
// separator, so handle the zero-length case here.
|
||||
if (bufinfo.len == 0) {
|
||||
return mp_const_empty_bytes;
|
||||
}
|
||||
|
||||
vstr_t vstr;
|
||||
size_t out_len = bufinfo.len * 2;
|
||||
if (n_args > 1) {
|
||||
// 1-char separator between hex numbers
|
||||
out_len += bufinfo.len - 1;
|
||||
sep = mp_obj_str_get_str(args[1]);
|
||||
}
|
||||
vstr_init_len(&vstr, out_len);
|
||||
byte *in = bufinfo.buf, *out = (byte *)vstr.buf;
|
||||
for (mp_uint_t i = bufinfo.len; i--;) {
|
||||
byte d = (*in >> 4);
|
||||
if (d > 9) {
|
||||
d += 'a' - '9' - 1;
|
||||
}
|
||||
*out++ = d + '0';
|
||||
d = (*in++ & 0xf);
|
||||
if (d > 9) {
|
||||
d += 'a' - '9' - 1;
|
||||
}
|
||||
*out++ = d + '0';
|
||||
if (sep != NULL && i != 0) {
|
||||
*out++ = *sep;
|
||||
}
|
||||
}
|
||||
return mp_obj_new_str_from_vstr(&mp_type_bytes, &vstr);
|
||||
#if MICROPY_PY_BUILTINS_BYTES_HEX
|
||||
STATIC mp_obj_t bytes_hex_as_bytes(size_t n_args, const mp_obj_t *args) {
|
||||
return mp_obj_bytes_hex(n_args, args, &mp_type_bytes);
|
||||
}
|
||||
STATIC MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(mod_binascii_hexlify_obj, 1, 2, mod_binascii_hexlify);
|
||||
|
||||
STATIC mp_obj_t mod_binascii_unhexlify(mp_obj_t data) {
|
||||
mp_buffer_info_t bufinfo;
|
||||
mp_get_buffer_raise(data, &bufinfo, MP_BUFFER_READ);
|
||||
STATIC MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(bytes_hex_as_bytes_obj, 1, 2, bytes_hex_as_bytes);
|
||||
|
||||
if ((bufinfo.len & 1) != 0) {
|
||||
mp_raise_ValueError(MP_ERROR_TEXT("odd-length string"));
|
||||
}
|
||||
vstr_t vstr;
|
||||
vstr_init_len(&vstr, bufinfo.len / 2);
|
||||
byte *in = bufinfo.buf, *out = (byte *)vstr.buf;
|
||||
byte hex_byte = 0;
|
||||
for (mp_uint_t i = bufinfo.len; i--;) {
|
||||
byte hex_ch = *in++;
|
||||
if (unichar_isxdigit(hex_ch)) {
|
||||
hex_byte += unichar_xdigit_value(hex_ch);
|
||||
} else {
|
||||
mp_raise_ValueError(MP_ERROR_TEXT("non-hex digit found"));
|
||||
}
|
||||
if (i & 1) {
|
||||
hex_byte <<= 4;
|
||||
} else {
|
||||
*out++ = hex_byte;
|
||||
hex_byte = 0;
|
||||
}
|
||||
}
|
||||
return mp_obj_new_str_from_vstr(&mp_type_bytes, &vstr);
|
||||
STATIC mp_obj_t bytes_fromhex_bytes(mp_obj_t data) {
|
||||
return mp_obj_bytes_fromhex(MP_OBJ_FROM_PTR(&mp_type_bytes), data);
|
||||
}
|
||||
STATIC MP_DEFINE_CONST_FUN_OBJ_1(mod_binascii_unhexlify_obj, mod_binascii_unhexlify);
|
||||
STATIC MP_DEFINE_CONST_FUN_OBJ_1(bytes_fromhex_obj, bytes_fromhex_bytes);
|
||||
#endif
|
||||
|
||||
// If ch is a character in the base64 alphabet, and is not a pad character, then
|
||||
// the corresponding integer between 0 and 63, inclusively, is returned.
|
||||
@ -171,7 +115,7 @@ STATIC mp_obj_t mod_binascii_a2b_base64(mp_obj_t data) {
|
||||
mp_raise_ValueError(MP_ERROR_TEXT("incorrect padding"));
|
||||
}
|
||||
|
||||
return mp_obj_new_str_from_vstr(&mp_type_bytes, &vstr);
|
||||
return mp_obj_new_bytes_from_vstr(&vstr);
|
||||
}
|
||||
STATIC MP_DEFINE_CONST_FUN_OBJ_1(mod_binascii_a2b_base64_obj, mod_binascii_a2b_base64);
|
||||
|
||||
@ -184,6 +128,7 @@ STATIC mp_obj_t mod_binascii_b2a_base64(size_t n_args, const mp_obj_t *pos_args,
|
||||
mp_arg_val_t args[MP_ARRAY_SIZE(allowed_args)];
|
||||
mp_arg_parse_all(n_args - 1, pos_args + 1, kw_args, MP_ARRAY_SIZE(allowed_args), allowed_args, args);
|
||||
uint8_t newline = args[ARG_newline].u_bool;
|
||||
// CIRCUITPY
|
||||
check_not_unicode(pos_args[0]);
|
||||
mp_buffer_info_t bufinfo;
|
||||
mp_get_buffer_raise(pos_args[0], &bufinfo, MP_BUFFER_READ);
|
||||
@ -234,7 +179,7 @@ STATIC mp_obj_t mod_binascii_b2a_base64(size_t n_args, const mp_obj_t *pos_args,
|
||||
if (newline) {
|
||||
*out = '\n';
|
||||
}
|
||||
return mp_obj_new_str_from_vstr(&mp_type_bytes, &vstr);
|
||||
return mp_obj_new_bytes_from_vstr(&vstr);
|
||||
}
|
||||
STATIC MP_DEFINE_CONST_FUN_OBJ_KW(mod_binascii_b2a_base64_obj, 1, mod_binascii_b2a_base64);
|
||||
|
||||
@ -274,53 +219,30 @@ STATIC MP_DEFINE_CONST_FUN_OBJ_KW(mod_binascii_b2a_base64_obj, 1, mod_binascii_b
|
||||
* any source distribution.
|
||||
*/
|
||||
|
||||
/*
|
||||
* CRC32 algorithm taken from the zlib source, which is
|
||||
* Copyright (C) 1995-1998 Jean-loup Gailly and Mark Adler
|
||||
*/
|
||||
|
||||
|
||||
static const unsigned int tinf_crc32tab[16] = {
|
||||
0x00000000, 0x1db71064, 0x3b6e20c8, 0x26d930ac, 0x76dc4190,
|
||||
0x6b6b51f4, 0x4db26158, 0x5005713c, 0xedb88320, 0xf00f9344,
|
||||
0xd6d6a3e8, 0xcb61b38c, 0x9b64c2b0, 0x86d3d2d4, 0xa00ae278,
|
||||
0xbdbdf21c
|
||||
};
|
||||
|
||||
/* crc is previous value for incremental computation, 0xffffffff initially */
|
||||
static uint32_t from_uzlib_crc32(const void *data, unsigned int length, uint32_t crc) {
|
||||
const unsigned char *buf = (const unsigned char *)data;
|
||||
unsigned int i;
|
||||
|
||||
for (i = 0; i < length; ++i)
|
||||
{
|
||||
crc ^= buf[i];
|
||||
crc = tinf_crc32tab[crc & 0x0f] ^ (crc >> 4);
|
||||
crc = tinf_crc32tab[crc & 0x0f] ^ (crc >> 4);
|
||||
}
|
||||
|
||||
// return value suitable for passing in next time, for final value invert it
|
||||
return crc /* ^ 0xffffffff*/;
|
||||
}
|
||||
|
||||
#if MICROPY_PY_UBINASCII_CRC32
|
||||
STATIC mp_obj_t mod_binascii_crc32(size_t n_args, const mp_obj_t *args) {
|
||||
mp_buffer_info_t bufinfo;
|
||||
// CIRCUITPY
|
||||
check_not_unicode(args[0]);
|
||||
mp_get_buffer_raise(args[0], &bufinfo, MP_BUFFER_READ);
|
||||
uint32_t crc = (n_args > 1) ? mp_obj_get_int_truncated(args[1]) : 0;
|
||||
crc = from_uzlib_crc32(bufinfo.buf, bufinfo.len, crc ^ 0xffffffff);
|
||||
crc = uzlib_crc32(bufinfo.buf, bufinfo.len, crc ^ 0xffffffff);
|
||||
return mp_obj_new_int_from_uint(crc ^ 0xffffffff);
|
||||
}
|
||||
STATIC MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(mod_binascii_crc32_obj, 1, 2, mod_binascii_crc32);
|
||||
|
||||
#endif
|
||||
|
||||
STATIC const mp_rom_map_elem_t mp_module_binascii_globals_table[] = {
|
||||
{ MP_ROM_QSTR(MP_QSTR___name__), MP_ROM_QSTR(MP_QSTR_binascii) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_hexlify), MP_ROM_PTR(&mod_binascii_hexlify_obj) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_unhexlify), MP_ROM_PTR(&mod_binascii_unhexlify_obj) },
|
||||
{ MP_ROM_QSTR(MP_QSTR___name__), MP_ROM_QSTR(MP_QSTR_ubinascii) },
|
||||
#if MICROPY_PY_BUILTINS_BYTES_HEX
|
||||
{ MP_ROM_QSTR(MP_QSTR_hexlify), MP_ROM_PTR(&bytes_hex_as_bytes_obj) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_unhexlify), MP_ROM_PTR(&bytes_fromhex_obj) },
|
||||
#endif
|
||||
{ MP_ROM_QSTR(MP_QSTR_a2b_base64), MP_ROM_PTR(&mod_binascii_a2b_base64_obj) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_b2a_base64), MP_ROM_PTR(&mod_binascii_b2a_base64_obj) },
|
||||
#if MICROPY_PY_UBINASCII_CRC32
|
||||
{ MP_ROM_QSTR(MP_QSTR_crc32), MP_ROM_PTR(&mod_binascii_crc32_obj) },
|
||||
#endif
|
||||
};
|
||||
|
||||
STATIC MP_DEFINE_CONST_DICT(mp_module_binascii_globals, mp_module_binascii_globals_table);
|
||||
|
@ -32,8 +32,6 @@
|
||||
#include "py/objtuple.h"
|
||||
#include "py/binary.h"
|
||||
|
||||
#include "supervisor/shared/translate/translate.h"
|
||||
|
||||
#if MICROPY_PY_UCTYPES
|
||||
|
||||
// The uctypes module allows defining the layout of a raw data structure (using
|
||||
@ -192,7 +190,7 @@ STATIC mp_uint_t uctypes_struct_size(mp_obj_t desc_in, int layout_type, mp_uint_
|
||||
// but scalar structure field is lowered into native Python int, so all
|
||||
// type info is lost. So, we cannot say if it's scalar type description,
|
||||
// or such lowered scalar.
|
||||
mp_raise_TypeError(MP_ERROR_TEXT("cannot unambiguously get sizeof scalar"));
|
||||
mp_raise_TypeError(MP_ERROR_TEXT("can't unambiguously get sizeof scalar"));
|
||||
}
|
||||
syntax_error();
|
||||
}
|
||||
@ -504,8 +502,8 @@ STATIC void uctypes_struct_attr(mp_obj_t self_in, qstr attr, mp_obj_t *dest) {
|
||||
}
|
||||
}
|
||||
|
||||
STATIC mp_obj_t uctypes_struct_subscr(mp_obj_t base_in, mp_obj_t index_in, mp_obj_t value) {
|
||||
mp_obj_uctypes_struct_t *self = mp_obj_cast_to_native_base(base_in, &uctypes_struct_type);
|
||||
STATIC mp_obj_t uctypes_struct_subscr(mp_obj_t self_in, mp_obj_t index_in, mp_obj_t value) {
|
||||
mp_obj_uctypes_struct_t *self = MP_OBJ_TO_PTR(self_in);
|
||||
|
||||
if (value == MP_OBJ_NULL) {
|
||||
// delete
|
||||
@ -561,7 +559,7 @@ STATIC mp_obj_t uctypes_struct_subscr(mp_obj_t base_in, mp_obj_t index_in, mp_ob
|
||||
}
|
||||
|
||||
} else if (agg_type == PTR) {
|
||||
byte *p = *(void **)(void *)self->addr;
|
||||
byte *p = *(void **)self->addr;
|
||||
if (mp_obj_is_small_int(t->items[1])) {
|
||||
uint val_type = GET_TYPE(MP_OBJ_SMALL_INT_VALUE(t->items[1]), VAL_TYPE_BITS);
|
||||
return get_aligned(val_type, p, index);
|
||||
@ -590,7 +588,7 @@ STATIC mp_obj_t uctypes_struct_unary_op(mp_unary_op_t op, mp_obj_t self_in) {
|
||||
mp_int_t offset = MP_OBJ_SMALL_INT_VALUE(t->items[0]);
|
||||
uint agg_type = GET_TYPE(offset, AGG_TYPE_BITS);
|
||||
if (agg_type == PTR) {
|
||||
byte *p = *(void **)(void *)self->addr;
|
||||
byte *p = *(void **)self->addr;
|
||||
return mp_obj_new_int((mp_int_t)(uintptr_t)p);
|
||||
}
|
||||
}
|
||||
@ -636,19 +634,17 @@ STATIC mp_obj_t uctypes_struct_bytes_at(mp_obj_t ptr, mp_obj_t size) {
|
||||
}
|
||||
MP_DEFINE_CONST_FUN_OBJ_2(uctypes_struct_bytes_at_obj, uctypes_struct_bytes_at);
|
||||
|
||||
STATIC const mp_obj_type_t uctypes_struct_type = {
|
||||
{ &mp_type_type },
|
||||
.flags = MP_TYPE_FLAG_EXTENDED,
|
||||
.name = MP_QSTR_struct,
|
||||
.print = uctypes_struct_print,
|
||||
.make_new = uctypes_struct_make_new,
|
||||
.attr = uctypes_struct_attr,
|
||||
MP_TYPE_EXTENDED_FIELDS(
|
||||
.subscr = uctypes_struct_subscr,
|
||||
.unary_op = uctypes_struct_unary_op,
|
||||
.buffer_p = { .get_buffer = uctypes_get_buffer },
|
||||
),
|
||||
};
|
||||
STATIC MP_DEFINE_CONST_OBJ_TYPE(
|
||||
uctypes_struct_type,
|
||||
MP_QSTR_struct,
|
||||
MP_TYPE_FLAG_NONE,
|
||||
make_new, uctypes_struct_make_new,
|
||||
print, uctypes_struct_print,
|
||||
attr, uctypes_struct_attr,
|
||||
subscr, uctypes_struct_subscr,
|
||||
unary_op, uctypes_struct_unary_op,
|
||||
buffer, uctypes_get_buffer
|
||||
);
|
||||
|
||||
STATIC const mp_rom_map_elem_t mp_module_uctypes_globals_table[] = {
|
||||
{ MP_ROM_QSTR(MP_QSTR___name__), MP_ROM_QSTR(MP_QSTR_uctypes) },
|
||||
|
@ -29,8 +29,6 @@
|
||||
|
||||
#include "py/runtime.h"
|
||||
|
||||
#include "supervisor/shared/translate/translate.h"
|
||||
|
||||
#if MICROPY_PY_UHASHLIB
|
||||
|
||||
#if MICROPY_SSL_MBEDTLS
|
||||
@ -111,7 +109,7 @@ STATIC mp_obj_t uhashlib_sha256_digest(mp_obj_t self_in) {
|
||||
vstr_t vstr;
|
||||
vstr_init_len(&vstr, 32);
|
||||
mbedtls_sha256_finish_ret((mbedtls_sha256_context *)&self->state, (unsigned char *)vstr.buf);
|
||||
return mp_obj_new_str_from_vstr(&mp_type_bytes, &vstr);
|
||||
return mp_obj_new_bytes_from_vstr(&vstr);
|
||||
}
|
||||
|
||||
#else
|
||||
@ -154,7 +152,7 @@ STATIC mp_obj_t uhashlib_sha256_digest(mp_obj_t self_in) {
|
||||
vstr_t vstr;
|
||||
vstr_init_len(&vstr, SHA256_BLOCK_SIZE);
|
||||
sha256_final((CRYAL_SHA256_CTX *)self->state, (byte *)vstr.buf);
|
||||
return mp_obj_new_str_from_vstr(&mp_type_bytes, &vstr);
|
||||
return mp_obj_new_bytes_from_vstr(&vstr);
|
||||
}
|
||||
#endif
|
||||
|
||||
@ -168,12 +166,13 @@ STATIC const mp_rom_map_elem_t uhashlib_sha256_locals_dict_table[] = {
|
||||
|
||||
STATIC MP_DEFINE_CONST_DICT(uhashlib_sha256_locals_dict, uhashlib_sha256_locals_dict_table);
|
||||
|
||||
STATIC const mp_obj_type_t uhashlib_sha256_type = {
|
||||
{ &mp_type_type },
|
||||
.name = MP_QSTR_sha256,
|
||||
.make_new = uhashlib_sha256_make_new,
|
||||
.locals_dict = (void *)&uhashlib_sha256_locals_dict,
|
||||
};
|
||||
STATIC MP_DEFINE_CONST_OBJ_TYPE(
|
||||
uhashlib_sha256_type,
|
||||
MP_QSTR_sha256,
|
||||
MP_TYPE_FLAG_NONE,
|
||||
make_new, uhashlib_sha256_make_new,
|
||||
locals_dict, &uhashlib_sha256_locals_dict
|
||||
);
|
||||
#endif
|
||||
|
||||
#if MICROPY_PY_UHASHLIB_SHA1
|
||||
@ -207,7 +206,7 @@ STATIC mp_obj_t uhashlib_sha1_digest(mp_obj_t self_in) {
|
||||
vstr_t vstr;
|
||||
vstr_init_len(&vstr, SHA1_SIZE);
|
||||
SHA1_Final((byte *)vstr.buf, (SHA1_CTX *)self->state);
|
||||
return mp_obj_new_str_from_vstr(&mp_type_bytes, &vstr);
|
||||
return mp_obj_new_bytes_from_vstr(&vstr);
|
||||
}
|
||||
#endif
|
||||
|
||||
@ -248,7 +247,7 @@ STATIC mp_obj_t uhashlib_sha1_digest(mp_obj_t self_in) {
|
||||
vstr_init_len(&vstr, 20);
|
||||
mbedtls_sha1_finish_ret((mbedtls_sha1_context *)self->state, (byte *)vstr.buf);
|
||||
mbedtls_sha1_free((mbedtls_sha1_context *)self->state);
|
||||
return mp_obj_new_str_from_vstr(&mp_type_bytes, &vstr);
|
||||
return mp_obj_new_bytes_from_vstr(&vstr);
|
||||
}
|
||||
#endif
|
||||
|
||||
@ -261,12 +260,13 @@ STATIC const mp_rom_map_elem_t uhashlib_sha1_locals_dict_table[] = {
|
||||
};
|
||||
STATIC MP_DEFINE_CONST_DICT(uhashlib_sha1_locals_dict, uhashlib_sha1_locals_dict_table);
|
||||
|
||||
STATIC const mp_obj_type_t uhashlib_sha1_type = {
|
||||
{ &mp_type_type },
|
||||
.name = MP_QSTR_sha1,
|
||||
.make_new = uhashlib_sha1_make_new,
|
||||
.locals_dict = (void *)&uhashlib_sha1_locals_dict,
|
||||
};
|
||||
STATIC MP_DEFINE_CONST_OBJ_TYPE(
|
||||
uhashlib_sha1_type,
|
||||
MP_QSTR_sha1,
|
||||
MP_TYPE_FLAG_NONE,
|
||||
make_new, uhashlib_sha1_make_new,
|
||||
locals_dict, &uhashlib_sha1_locals_dict
|
||||
);
|
||||
#endif
|
||||
|
||||
#if MICROPY_PY_UHASHLIB_MD5
|
||||
@ -300,7 +300,7 @@ STATIC mp_obj_t uhashlib_md5_digest(mp_obj_t self_in) {
|
||||
vstr_t vstr;
|
||||
vstr_init_len(&vstr, MD5_SIZE);
|
||||
MD5_Final((byte *)vstr.buf, (MD5_CTX *)self->state);
|
||||
return mp_obj_new_str_from_vstr(&mp_type_bytes, &vstr);
|
||||
return mp_obj_new_bytes_from_vstr(&vstr);
|
||||
}
|
||||
#endif // MICROPY_SSL_AXTLS
|
||||
|
||||
@ -341,7 +341,7 @@ STATIC mp_obj_t uhashlib_md5_digest(mp_obj_t self_in) {
|
||||
vstr_init_len(&vstr, 16);
|
||||
mbedtls_md5_finish_ret((mbedtls_md5_context *)self->state, (byte *)vstr.buf);
|
||||
mbedtls_md5_free((mbedtls_md5_context *)self->state);
|
||||
return mp_obj_new_str_from_vstr(&mp_type_bytes, &vstr);
|
||||
return mp_obj_new_bytes_from_vstr(&vstr);
|
||||
}
|
||||
#endif // MICROPY_SSL_MBEDTLS
|
||||
|
||||
@ -354,12 +354,13 @@ STATIC const mp_rom_map_elem_t uhashlib_md5_locals_dict_table[] = {
|
||||
};
|
||||
STATIC MP_DEFINE_CONST_DICT(uhashlib_md5_locals_dict, uhashlib_md5_locals_dict_table);
|
||||
|
||||
STATIC const mp_obj_type_t uhashlib_md5_type = {
|
||||
{ &mp_type_type },
|
||||
.name = MP_QSTR_md5,
|
||||
.make_new = uhashlib_md5_make_new,
|
||||
.locals_dict = (void *)&uhashlib_md5_locals_dict,
|
||||
};
|
||||
STATIC MP_DEFINE_CONST_OBJ_TYPE(
|
||||
uhashlib_md5_type,
|
||||
MP_QSTR_md5,
|
||||
MP_TYPE_FLAG_NONE,
|
||||
make_new, uhashlib_md5_make_new,
|
||||
locals_dict, &uhashlib_md5_locals_dict
|
||||
);
|
||||
#endif // MICROPY_PY_UHASHLIB_MD5
|
||||
|
||||
STATIC const mp_rom_map_elem_t mp_module_uhashlib_globals_table[] = {
|
||||
|
@ -27,8 +27,6 @@
|
||||
#include "py/objlist.h"
|
||||
#include "py/runtime.h"
|
||||
|
||||
#include "supervisor/shared/translate/translate.h"
|
||||
|
||||
#if MICROPY_PY_UHEAPQ
|
||||
|
||||
// the algorithm here is modelled on CPython's heapq.py
|
||||
|
@ -34,8 +34,6 @@
|
||||
#include "py/runtime.h"
|
||||
#include "py/stream.h"
|
||||
|
||||
#include "supervisor/shared/translate/translate.h"
|
||||
|
||||
#if MICROPY_PY_UJSON
|
||||
|
||||
#if MICROPY_PY_UJSON_SEPARATORS
|
||||
@ -71,7 +69,7 @@ STATIC mp_obj_t mod_ujson_dump_helper(size_t n_args, const mp_obj_t *pos_args, m
|
||||
vstr_t vstr;
|
||||
vstr_init_print(&vstr, 8, &print_ext.base);
|
||||
mp_obj_print_helper(&print_ext.base, pos_args[0], PRINT_JSON);
|
||||
return mp_obj_new_str_from_vstr(&mp_type_str, &vstr);
|
||||
return mp_obj_new_str_from_utf8_vstr(&vstr);
|
||||
} else {
|
||||
// dump(obj, stream)
|
||||
print_ext.base.data = MP_OBJ_TO_PTR(pos_args[1]);
|
||||
@ -107,7 +105,7 @@ STATIC mp_obj_t mod_ujson_dumps(mp_obj_t obj) {
|
||||
mp_print_t print;
|
||||
vstr_init_print(&vstr, 8, &print);
|
||||
mp_obj_print_helper(&print, obj, PRINT_JSON);
|
||||
return mp_obj_new_str_from_vstr(&mp_type_str, &vstr);
|
||||
return mp_obj_new_str_from_utf8_vstr(&vstr);
|
||||
}
|
||||
STATIC MP_DEFINE_CONST_FUN_OBJ_1(mod_ujson_dumps_obj, mod_ujson_dumps);
|
||||
#endif
|
||||
@ -178,6 +176,9 @@ STATIC mp_uint_t ujson_python_readinto(mp_obj_t obj, void *buf, mp_uint_t size,
|
||||
}
|
||||
s->start = 0;
|
||||
s->end = mp_obj_get_int(ret);
|
||||
if (s->end == 0) {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
*((uint8_t *)buf) = ((uint8_t *)s->bytearray_obj.items)[s->start];
|
||||
@ -332,7 +333,7 @@ STATIC mp_obj_t _mod_ujson_load(mp_obj_t stream_obj, bool return_first_json) {
|
||||
S_NEXT(s);
|
||||
}
|
||||
if (flt) {
|
||||
next = mp_parse_num_decimal(vstr.buf, vstr.len, false, false, NULL);
|
||||
next = mp_parse_num_float(vstr.buf, vstr.len, false, NULL);
|
||||
} else {
|
||||
next = mp_parse_num_integer(vstr.buf, vstr.len, 10, NULL);
|
||||
}
|
||||
|
@ -37,11 +37,11 @@
|
||||
|
||||
#if defined(__ARM_ARCH)
|
||||
#define MICROPY_PLATFORM_ARCH "arm"
|
||||
#elif defined(__x86_64__) || defined(_WIN64)
|
||||
#elif defined(__x86_64__) || defined(_M_X64)
|
||||
#define MICROPY_PLATFORM_ARCH "x86_64"
|
||||
#elif defined(__i386__) || defined(_M_IX86)
|
||||
#define MICROPY_PLATFORM_ARCH "x86"
|
||||
#elif defined(__xtensa__) || defined(_M_IX86)
|
||||
#elif defined(__xtensa__)
|
||||
#define MICROPY_PLATFORM_ARCH "xtensa"
|
||||
#else
|
||||
#define MICROPY_PLATFORM_ARCH ""
|
||||
|
@ -33,16 +33,17 @@
|
||||
#include "py/objstr.h"
|
||||
#include "py/stackctrl.h"
|
||||
|
||||
#if MICROPY_PY_BUILTINS_STR_UNICODE
|
||||
#include "py/unicode.h"
|
||||
#endif
|
||||
|
||||
#if MICROPY_PY_URE
|
||||
|
||||
#define re1_5_stack_chk() MP_STACK_CHECK()
|
||||
|
||||
#include "lib/re1.5/re1.5.h"
|
||||
|
||||
// CIRCUITPY
|
||||
#if MICROPY_PY_URE_DEBUG
|
||||
#define FLAG_DEBUG 0x1000
|
||||
#endif
|
||||
|
||||
typedef struct _mp_obj_re_t {
|
||||
mp_obj_base_t base;
|
||||
@ -124,6 +125,18 @@ STATIC void match_span_helper(size_t n_args, const mp_obj_t *args, mp_obj_t span
|
||||
e = self->caps[no * 2 + 1] - begin;
|
||||
}
|
||||
|
||||
#if MICROPY_PY_BUILTINS_STR_UNICODE
|
||||
if (mp_obj_get_type(self->str) == &mp_type_str) {
|
||||
const byte *begin = (const byte *)mp_obj_str_get_str(self->str);
|
||||
if (s != -1) {
|
||||
s = utf8_ptr_to_index(begin, begin + s);
|
||||
}
|
||||
if (e != -1) {
|
||||
e = utf8_ptr_to_index(begin, begin + e);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
span[0] = mp_obj_new_int(s);
|
||||
span[1] = mp_obj_new_int(e);
|
||||
}
|
||||
@ -166,12 +179,13 @@ STATIC const mp_rom_map_elem_t match_locals_dict_table[] = {
|
||||
|
||||
STATIC MP_DEFINE_CONST_DICT(match_locals_dict, match_locals_dict_table);
|
||||
|
||||
STATIC const mp_obj_type_t match_type = {
|
||||
{ &mp_type_type },
|
||||
.name = MP_QSTR_match,
|
||||
.print = match_print,
|
||||
.locals_dict = (void *)&match_locals_dict,
|
||||
};
|
||||
STATIC MP_DEFINE_CONST_OBJ_TYPE(
|
||||
match_type,
|
||||
MP_QSTR_match,
|
||||
MP_TYPE_FLAG_NONE,
|
||||
print, match_print,
|
||||
locals_dict, &match_locals_dict
|
||||
);
|
||||
#endif
|
||||
|
||||
STATIC void re_print(const mp_print_t *print, mp_obj_t self_in, mp_print_kind_t kind) {
|
||||
@ -183,7 +197,7 @@ STATIC void re_print(const mp_print_t *print, mp_obj_t self_in, mp_print_kind_t
|
||||
STATIC mp_obj_t ure_exec(bool is_anchored, uint n_args, const mp_obj_t *args) {
|
||||
(void)n_args;
|
||||
mp_obj_re_t *self;
|
||||
if (mp_obj_is_type(args[0], &re_type)) {
|
||||
if (mp_obj_is_type(args[0], (mp_obj_type_t *)&re_type)) {
|
||||
self = MP_OBJ_TO_PTR(args[0]);
|
||||
} else {
|
||||
self = MP_OBJ_TO_PTR(mod_re_compile(1, args));
|
||||
@ -232,7 +246,7 @@ STATIC mp_obj_t ure_exec(bool is_anchored, uint n_args, const mp_obj_t *args) {
|
||||
return mp_const_none;
|
||||
}
|
||||
|
||||
match->base.type = &match_type;
|
||||
match->base.type = (mp_obj_type_t *)&match_type;
|
||||
match->num_matches = caps_num / 2; // caps_num counts start and end pointers
|
||||
match->str = args[1];
|
||||
return MP_OBJ_FROM_PTR(match);
|
||||
@ -277,7 +291,7 @@ STATIC mp_obj_t re_split(size_t n_args, const mp_obj_t *args) {
|
||||
mp_obj_t s = mp_obj_new_str_of_type(str_type, (const byte *)subj.begin, caps[0] - subj.begin);
|
||||
mp_obj_list_append(retval, s);
|
||||
if (self->re.sub > 0) {
|
||||
mp_raise_NotImplementedError(MP_ERROR_TEXT("Splitting with sub-captures"));
|
||||
mp_raise_NotImplementedError(MP_ERROR_TEXT("splitting with sub-captures"));
|
||||
}
|
||||
subj.begin = caps[1];
|
||||
if (maxsplit > 0 && --maxsplit == 0) {
|
||||
@ -297,7 +311,7 @@ MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(re_split_obj, 2, 3, re_split);
|
||||
|
||||
STATIC mp_obj_t re_sub_helper(size_t n_args, const mp_obj_t *args) {
|
||||
mp_obj_re_t *self;
|
||||
if (mp_obj_is_type(args[0], &re_type)) {
|
||||
if (mp_obj_is_type(args[0], (mp_obj_type_t *)&re_type)) {
|
||||
self = MP_OBJ_TO_PTR(args[0]);
|
||||
} else {
|
||||
self = MP_OBJ_TO_PTR(mod_re_compile(1, args));
|
||||
@ -320,7 +334,7 @@ STATIC mp_obj_t re_sub_helper(size_t n_args, const mp_obj_t *args) {
|
||||
vstr_t vstr_return;
|
||||
vstr_return.buf = NULL; // We'll init the vstr after the first match
|
||||
mp_obj_match_t *match = mp_local_alloc(sizeof(mp_obj_match_t) + caps_num * sizeof(char *));
|
||||
match->base.type = &match_type;
|
||||
match->base.type = (mp_obj_type_t *)&match_type;
|
||||
match->num_matches = caps_num / 2; // caps_num counts start and end pointers
|
||||
match->str = where;
|
||||
|
||||
@ -405,7 +419,11 @@ STATIC mp_obj_t re_sub_helper(size_t n_args, const mp_obj_t *args) {
|
||||
// Add post-match string
|
||||
vstr_add_strn(&vstr_return, subj.begin, subj.end - subj.begin);
|
||||
|
||||
return mp_obj_new_str_from_vstr(mp_obj_get_type(where), &vstr_return);
|
||||
if (mp_obj_get_type(where) == &mp_type_str) {
|
||||
return mp_obj_new_str_from_utf8_vstr(&vstr_return);
|
||||
} else {
|
||||
return mp_obj_new_bytes_from_vstr(&vstr_return);
|
||||
}
|
||||
}
|
||||
|
||||
MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(re_sub_obj, 3, 5, re_sub_helper);
|
||||
@ -424,16 +442,17 @@ STATIC const mp_rom_map_elem_t re_locals_dict_table[] = {
|
||||
|
||||
STATIC MP_DEFINE_CONST_DICT(re_locals_dict, re_locals_dict_table);
|
||||
|
||||
STATIC const mp_obj_type_t re_type = {
|
||||
{ &mp_type_type },
|
||||
STATIC MP_DEFINE_CONST_OBJ_TYPE(
|
||||
re_type,
|
||||
#if CIRCUITPY
|
||||
.name = MP_QSTR_re,
|
||||
MP_QSTR_re,
|
||||
#else
|
||||
.name = MP_QSTR_ure,
|
||||
MP_QSTR_ure,
|
||||
#endif
|
||||
.print = re_print,
|
||||
.locals_dict = (void *)&re_locals_dict,
|
||||
};
|
||||
MP_TYPE_FLAG_NONE,
|
||||
print, re_print,
|
||||
locals_dict, &re_locals_dict
|
||||
);
|
||||
#endif
|
||||
|
||||
STATIC mp_obj_t mod_re_compile(size_t n_args, const mp_obj_t *args) {
|
||||
@ -443,14 +462,12 @@ STATIC mp_obj_t mod_re_compile(size_t n_args, const mp_obj_t *args) {
|
||||
if (size == -1) {
|
||||
goto error;
|
||||
}
|
||||
mp_obj_re_t *o = mp_obj_malloc_var(mp_obj_re_t, char, size, &re_type);
|
||||
mp_obj_re_t *o = mp_obj_malloc_var(mp_obj_re_t, char, size, (mp_obj_type_t *)&re_type);
|
||||
#if MICROPY_PY_URE_DEBUG
|
||||
int flags = 0;
|
||||
if (n_args > 1) {
|
||||
flags = mp_obj_get_int(args[1]);
|
||||
}
|
||||
#else
|
||||
(void)n_args;
|
||||
#endif
|
||||
int error = re1_5_compilecode(&o->re, re_str);
|
||||
if (error != 0) {
|
||||
|
@ -30,7 +30,6 @@
|
||||
|
||||
#include <stdio.h>
|
||||
|
||||
#include "py/stream.h"
|
||||
#include "py/runtime.h"
|
||||
#include "py/obj.h"
|
||||
#include "py/objlist.h"
|
||||
@ -343,16 +342,13 @@ STATIC const mp_rom_map_elem_t poll_locals_dict_table[] = {
|
||||
};
|
||||
STATIC MP_DEFINE_CONST_DICT(poll_locals_dict, poll_locals_dict_table);
|
||||
|
||||
STATIC const mp_obj_type_t mp_type_poll = {
|
||||
{ &mp_type_type },
|
||||
.flags = MP_TYPE_FLAG_EXTENDED,
|
||||
.name = MP_QSTR_poll,
|
||||
.locals_dict = (void *)&poll_locals_dict,
|
||||
MP_TYPE_EXTENDED_FIELDS(
|
||||
.getiter = mp_identity_getiter,
|
||||
.iternext = poll_iternext,
|
||||
),
|
||||
};
|
||||
STATIC MP_DEFINE_CONST_OBJ_TYPE(
|
||||
mp_type_poll,
|
||||
MP_QSTR_poll,
|
||||
MP_TYPE_FLAG_ITER_IS_ITERNEXT,
|
||||
iter, poll_iternext,
|
||||
locals_dict, &poll_locals_dict
|
||||
);
|
||||
|
||||
// poll()
|
||||
STATIC mp_obj_t select_poll(void) {
|
||||
|
@ -31,8 +31,6 @@
|
||||
#include "py/stream.h"
|
||||
#include "py/mperrno.h"
|
||||
|
||||
#include "supervisor/shared/translate/translate.h"
|
||||
|
||||
#if MICROPY_PY_UZLIB
|
||||
|
||||
#define UZLIB_CONF_PARANOID_CHECKS (1)
|
||||
@ -138,22 +136,19 @@ STATIC const mp_rom_map_elem_t decompio_locals_dict_table[] = {
|
||||
STATIC MP_DEFINE_CONST_DICT(decompio_locals_dict, decompio_locals_dict_table);
|
||||
#endif
|
||||
|
||||
#if !MICROPY_ENABLE_DYNRUNTIME
|
||||
STATIC const mp_stream_p_t decompio_stream_p = {
|
||||
MP_PROTO_IMPLEMENT(MP_QSTR_protocol_stream)
|
||||
.read = decompio_read,
|
||||
};
|
||||
|
||||
STATIC const mp_obj_type_t decompio_type = {
|
||||
{ &mp_type_type },
|
||||
.flags = MP_TYPE_FLAG_EXTENDED,
|
||||
.name = MP_QSTR_DecompIO,
|
||||
.make_new = decompio_make_new,
|
||||
.locals_dict = (void *)&decompio_locals_dict,
|
||||
MP_TYPE_EXTENDED_FIELDS(
|
||||
.protocol = &decompio_stream_p,
|
||||
),
|
||||
};
|
||||
#if !MICROPY_ENABLE_DYNRUNTIME
|
||||
STATIC MP_DEFINE_CONST_OBJ_TYPE(
|
||||
decompio_type,
|
||||
MP_QSTR_DecompIO,
|
||||
MP_TYPE_FLAG_NONE,
|
||||
make_new, decompio_make_new,
|
||||
protocol, &decompio_stream_p,
|
||||
locals_dict, &decompio_locals_dict
|
||||
);
|
||||
#endif
|
||||
|
||||
STATIC mp_obj_t mod_uzlib_decompress(size_t n_args, const mp_obj_t *args) {
|
||||
|
@ -1 +1 @@
|
||||
Subproject commit 84f99f17fc02b03c13f99485d9cf68bc9d17c600
|
||||
Subproject commit 2df210f87a79deedc9003b1bbd6015a2fea7c03e
|
@ -95,6 +95,19 @@ STATIC mp_obj_t time_ticks_add(mp_obj_t ticks_in, mp_obj_t delta_in) {
|
||||
// we assume that first argument come from ticks_xx so is small int
|
||||
mp_uint_t ticks = MP_OBJ_SMALL_INT_VALUE(ticks_in);
|
||||
mp_uint_t delta = mp_obj_get_int(delta_in);
|
||||
|
||||
// Check that delta does not overflow the range that ticks_diff can handle.
|
||||
// This ensures the following:
|
||||
// - ticks_diff(ticks_add(T, delta), T) == delta
|
||||
// - ticks_diff(T, ticks_add(T, delta)) == -delta
|
||||
// The latter requires excluding delta=-TICKS_PERIOD/2.
|
||||
//
|
||||
// This unsigned comparison is equivalent to a signed comparison of:
|
||||
// delta <= -TICKS_PERIOD/2 || delta >= TICKS_PERIOD/2
|
||||
if (delta + MICROPY_PY_UTIME_TICKS_PERIOD / 2 - 1 >= MICROPY_PY_UTIME_TICKS_PERIOD - 1) {
|
||||
mp_raise_msg(&mp_type_OverflowError, MP_ERROR_TEXT("ticks interval overflow"));
|
||||
}
|
||||
|
||||
return MP_OBJ_NEW_SMALL_INT((ticks + delta) & (MICROPY_PY_UTIME_TICKS_PERIOD - 1));
|
||||
}
|
||||
MP_DEFINE_CONST_FUN_OBJ_2(mp_utime_ticks_add_obj, time_ticks_add);
|
||||
|
24
extmod/vfs.c
24
extmod/vfs.c
@ -96,11 +96,12 @@ mp_vfs_mount_t *mp_vfs_lookup_path(const char *path, const char **path_out) {
|
||||
STATIC mp_vfs_mount_t *lookup_path(mp_obj_t path_in, mp_obj_t *path_out) {
|
||||
const char *path = mp_obj_str_get_str(path_in);
|
||||
const char *p_out;
|
||||
*path_out = mp_const_none;
|
||||
mp_vfs_mount_t *vfs = mp_vfs_lookup_path(path, &p_out);
|
||||
if (vfs != MP_VFS_NONE && vfs != MP_VFS_ROOT) {
|
||||
*path_out = mp_obj_new_str_of_type(mp_obj_get_type(path_in),
|
||||
(const byte *)p_out, strlen(p_out));
|
||||
} else {
|
||||
*path_out = MP_OBJ_NULL;
|
||||
}
|
||||
return vfs;
|
||||
}
|
||||
@ -131,8 +132,9 @@ mp_import_stat_t mp_vfs_import_stat(const char *path) {
|
||||
}
|
||||
|
||||
// If the mounted object has the VFS protocol, call its import_stat helper
|
||||
const mp_vfs_proto_t *proto = (mp_vfs_proto_t *)mp_proto_get(MP_QSTR_protocol_vfs, vfs->obj);
|
||||
if (proto != NULL) {
|
||||
const mp_obj_type_t *type = mp_obj_get_type(vfs->obj);
|
||||
if (MP_OBJ_TYPE_HAS_SLOT(type, protocol)) {
|
||||
const mp_vfs_proto_t *proto = MP_OBJ_TYPE_GET_SLOT(type, protocol);
|
||||
return proto->import_stat(MP_OBJ_TO_PTR(vfs->obj), path_out);
|
||||
}
|
||||
|
||||
@ -171,7 +173,7 @@ STATIC mp_obj_t mp_vfs_autodetect(mp_obj_t bdev_obj) {
|
||||
#if MICROPY_VFS_LFS1
|
||||
if (memcmp(&buf[32], "littlefs", 8) == 0) {
|
||||
// LFS1
|
||||
mp_obj_t vfs = mp_type_vfs_lfs1.make_new(&mp_type_vfs_lfs1, 1, 0, &bdev_obj);
|
||||
mp_obj_t vfs = MP_OBJ_TYPE_GET_SLOT(&mp_type_vfs_lfs1, make_new)(&mp_type_vfs_lfs1, 1, 0, &bdev_obj);
|
||||
nlr_pop();
|
||||
return vfs;
|
||||
}
|
||||
@ -179,7 +181,7 @@ STATIC mp_obj_t mp_vfs_autodetect(mp_obj_t bdev_obj) {
|
||||
#if MICROPY_VFS_LFS2
|
||||
if (memcmp(&buf[0], "littlefs", 8) == 0) {
|
||||
// LFS2
|
||||
mp_obj_t vfs = mp_type_vfs_lfs2.make_new(&mp_type_vfs_lfs2, 1, 0, &bdev_obj);
|
||||
mp_obj_t vfs = MP_OBJ_TYPE_GET_SLOT(&mp_type_vfs_lfs2, make_new)(&mp_type_vfs_lfs2, 1, 0, &bdev_obj);
|
||||
nlr_pop();
|
||||
return vfs;
|
||||
}
|
||||
@ -192,7 +194,7 @@ STATIC mp_obj_t mp_vfs_autodetect(mp_obj_t bdev_obj) {
|
||||
#endif
|
||||
|
||||
#if MICROPY_VFS_FAT
|
||||
return mp_fat_vfs_type.make_new(&mp_fat_vfs_type, 1, 0, &bdev_obj);
|
||||
return MP_OBJ_TYPE_GET_SLOT(&mp_fat_vfs_type, make_new)(&mp_fat_vfs_type, 1, 0, &bdev_obj);
|
||||
#endif
|
||||
|
||||
// no filesystem found
|
||||
@ -311,7 +313,7 @@ mp_obj_t mp_vfs_open(size_t n_args, const mp_obj_t *pos_args, mp_map_t *kw_args)
|
||||
#if defined(MICROPY_VFS_POSIX) && MICROPY_VFS_POSIX
|
||||
// If the file is an integer then delegate straight to the POSIX handler
|
||||
if (mp_obj_is_small_int(args[ARG_file].u_obj)) {
|
||||
return mp_vfs_posix_file_open(&mp_type_textio, args[ARG_file].u_obj, args[ARG_mode].u_obj);
|
||||
return mp_vfs_posix_file_open(&mp_type_vfs_posix_textio, args[ARG_file].u_obj, args[ARG_mode].u_obj);
|
||||
}
|
||||
#endif
|
||||
|
||||
@ -359,10 +361,11 @@ mp_obj_t mp_vfs_getcwd(void) {
|
||||
if (!(cwd[0] == '/' && cwd[1] == 0)) {
|
||||
vstr_add_str(&vstr, cwd);
|
||||
}
|
||||
return mp_obj_new_str_from_vstr(&mp_type_str, &vstr);
|
||||
return mp_obj_new_str_from_vstr(&vstr);
|
||||
}
|
||||
MP_DEFINE_CONST_FUN_OBJ_0(mp_vfs_getcwd_obj, mp_vfs_getcwd);
|
||||
|
||||
// CIRCUITPY: accessible from shared-module/os/__init__.c
|
||||
mp_obj_t mp_vfs_ilistdir_it_iternext(mp_obj_t self_in) {
|
||||
mp_vfs_ilistdir_it_t *self = MP_OBJ_TO_PTR(self_in);
|
||||
if (self->is_iter) {
|
||||
@ -402,7 +405,7 @@ mp_obj_t mp_vfs_ilistdir(size_t n_args, const mp_obj_t *args) {
|
||||
path_in = MP_OBJ_NEW_QSTR(MP_QSTR_);
|
||||
}
|
||||
|
||||
mp_obj_t path_out = mp_const_none;
|
||||
mp_obj_t path_out;
|
||||
mp_vfs_mount_t *vfs = lookup_path(path_in, &path_out);
|
||||
|
||||
if (vfs == MP_VFS_ROOT) {
|
||||
@ -535,4 +538,7 @@ int mp_vfs_mount_and_chdir_protected(mp_obj_t bdev, mp_obj_t mount_point) {
|
||||
return ret;
|
||||
}
|
||||
|
||||
MP_REGISTER_ROOT_POINTER(struct _mp_vfs_mount_t *vfs_cur);
|
||||
MP_REGISTER_ROOT_POINTER(struct _mp_vfs_mount_t *vfs_mount_table);
|
||||
|
||||
#endif // MICROPY_VFS
|
||||
|
@ -28,6 +28,10 @@
|
||||
#include "py/mpconfig.h"
|
||||
#if MICROPY_VFS_FAT
|
||||
|
||||
#if !MICROPY_ENABLE_FINALISER
|
||||
#error "MICROPY_VFS_FAT requires MICROPY_ENABLE_FINALISER"
|
||||
#endif
|
||||
|
||||
#if !MICROPY_VFS
|
||||
#error "with MICROPY_VFS_FAT enabled, must also enable MICROPY_VFS"
|
||||
#endif
|
||||
@ -41,7 +45,6 @@
|
||||
#include "extmod/vfs_fat.h"
|
||||
#include "shared/timeutils/timeutils.h"
|
||||
#include "supervisor/filesystem.h"
|
||||
#include "supervisor/shared/translate/translate.h"
|
||||
|
||||
#if FF_MAX_SS == FF_MIN_SS
|
||||
#define SECSIZE(fs) (FF_MIN_SS)
|
||||
@ -133,6 +136,7 @@ STATIC MP_DEFINE_CONST_STATICMETHOD_OBJ(fat_vfs_mkfs_obj, MP_ROM_PTR(&fat_vfs_mk
|
||||
typedef struct _mp_vfs_fat_ilistdir_it_t {
|
||||
mp_obj_base_t base;
|
||||
mp_fun_1_t iternext;
|
||||
mp_fun_1_t finaliser;
|
||||
bool is_str;
|
||||
FF_DIR dir;
|
||||
} mp_vfs_fat_ilistdir_it_t;
|
||||
@ -177,6 +181,13 @@ STATIC mp_obj_t mp_vfs_fat_ilistdir_it_iternext(mp_obj_t self_in) {
|
||||
return MP_OBJ_STOP_ITERATION;
|
||||
}
|
||||
|
||||
STATIC mp_obj_t mp_vfs_fat_ilistdir_it_del(mp_obj_t self_in) {
|
||||
mp_vfs_fat_ilistdir_it_t *self = MP_OBJ_TO_PTR(self_in);
|
||||
// ignore result / error because we may be closing a second time.
|
||||
f_closedir(&self->dir);
|
||||
return mp_const_none;
|
||||
}
|
||||
|
||||
STATIC mp_obj_t fat_vfs_ilistdir_func(size_t n_args, const mp_obj_t *args) {
|
||||
mp_obj_fat_vfs_t *self = MP_OBJ_TO_PTR(args[0]);
|
||||
bool is_str_type = true;
|
||||
@ -191,8 +202,10 @@ STATIC mp_obj_t fat_vfs_ilistdir_func(size_t n_args, const mp_obj_t *args) {
|
||||
}
|
||||
|
||||
// Create a new iterator object to list the dir
|
||||
mp_vfs_fat_ilistdir_it_t *iter = mp_obj_malloc(mp_vfs_fat_ilistdir_it_t, &mp_type_polymorph_iter);
|
||||
mp_vfs_fat_ilistdir_it_t *iter = m_new_obj_with_finaliser(mp_vfs_fat_ilistdir_it_t);
|
||||
iter->base.type = &mp_type_polymorph_iter_with_finaliser;
|
||||
iter->iternext = mp_vfs_fat_ilistdir_it_iternext;
|
||||
iter->finaliser = mp_vfs_fat_ilistdir_it_del;
|
||||
iter->is_str = is_str_type;
|
||||
FRESULT res = f_opendir(&self->fatfs, &iter->dir, path);
|
||||
if (res != FR_OK) {
|
||||
@ -524,16 +537,13 @@ STATIC const mp_vfs_proto_t fat_vfs_proto = {
|
||||
.import_stat = fat_vfs_import_stat,
|
||||
};
|
||||
|
||||
const mp_obj_type_t mp_fat_vfs_type = {
|
||||
{ &mp_type_type },
|
||||
.flags = MP_TYPE_FLAG_EXTENDED,
|
||||
.name = MP_QSTR_VfsFat,
|
||||
.make_new = fat_vfs_make_new,
|
||||
.locals_dict = (mp_obj_dict_t *)&fat_vfs_locals_dict,
|
||||
MP_TYPE_EXTENDED_FIELDS(
|
||||
.protocol = &fat_vfs_proto,
|
||||
),
|
||||
|
||||
};
|
||||
MP_DEFINE_CONST_OBJ_TYPE(
|
||||
mp_fat_vfs_type,
|
||||
MP_QSTR_VfsFat,
|
||||
MP_TYPE_FLAG_NONE,
|
||||
make_new, fat_vfs_make_new,
|
||||
protocol, &fat_vfs_proto,
|
||||
locals_dict, &fat_vfs_locals_dict
|
||||
);
|
||||
|
||||
#endif // MICROPY_VFS_FAT
|
||||
|
@ -148,19 +148,64 @@ STATIC mp_uint_t file_obj_ioctl(mp_obj_t o_in, mp_uint_t request, uintptr_t arg,
|
||||
}
|
||||
}
|
||||
|
||||
// Note: encoding is ignored for now; it's also not a valid kwarg for CPython's FileIO,
|
||||
// but by adding it here we can use one single mp_arg_t array for open() and FileIO's constructor
|
||||
STATIC const mp_arg_t file_open_args[] = {
|
||||
{ MP_QSTR_file, MP_ARG_OBJ | MP_ARG_REQUIRED, {.u_rom_obj = MP_ROM_NONE} },
|
||||
{ MP_QSTR_mode, MP_ARG_OBJ, {.u_obj = MP_OBJ_NEW_QSTR(MP_QSTR_r)} },
|
||||
{ MP_QSTR_encoding, MP_ARG_OBJ | MP_ARG_KW_ONLY, {.u_rom_obj = MP_ROM_NONE} },
|
||||
// TODO gc hook to close the file if not already closed
|
||||
|
||||
STATIC const mp_rom_map_elem_t vfs_fat_rawfile_locals_dict_table[] = {
|
||||
{ MP_ROM_QSTR(MP_QSTR_read), MP_ROM_PTR(&mp_stream_read_obj) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_readinto), MP_ROM_PTR(&mp_stream_readinto_obj) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_readline), MP_ROM_PTR(&mp_stream_unbuffered_readline_obj) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_readlines), MP_ROM_PTR(&mp_stream_unbuffered_readlines_obj) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_write), MP_ROM_PTR(&mp_stream_write_obj) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_flush), MP_ROM_PTR(&mp_stream_flush_obj) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_close), MP_ROM_PTR(&mp_stream_close_obj) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_seek), MP_ROM_PTR(&mp_stream_seek_obj) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_tell), MP_ROM_PTR(&mp_stream_tell_obj) },
|
||||
{ MP_ROM_QSTR(MP_QSTR___del__), MP_ROM_PTR(&mp_stream_close_obj) },
|
||||
{ MP_ROM_QSTR(MP_QSTR___enter__), MP_ROM_PTR(&mp_identity_obj) },
|
||||
{ MP_ROM_QSTR(MP_QSTR___exit__), MP_ROM_PTR(&file_obj___exit___obj) },
|
||||
};
|
||||
#define FILE_OPEN_NUM_ARGS MP_ARRAY_SIZE(file_open_args)
|
||||
|
||||
// CIRCUITPY is more careful about validating the open mode.
|
||||
STATIC mp_obj_t file_open(fs_user_mount_t *vfs, const mp_obj_type_t *type, mp_arg_val_t *args) {
|
||||
STATIC MP_DEFINE_CONST_DICT(vfs_fat_rawfile_locals_dict, vfs_fat_rawfile_locals_dict_table);
|
||||
|
||||
STATIC const mp_stream_p_t vfs_fat_fileio_stream_p = {
|
||||
.read = file_obj_read,
|
||||
.write = file_obj_write,
|
||||
.ioctl = file_obj_ioctl,
|
||||
};
|
||||
|
||||
MP_DEFINE_CONST_OBJ_TYPE(
|
||||
mp_type_vfs_fat_fileio,
|
||||
MP_QSTR_FileIO,
|
||||
MP_TYPE_FLAG_ITER_IS_STREAM,
|
||||
print, file_obj_print,
|
||||
protocol, &vfs_fat_fileio_stream_p,
|
||||
locals_dict, &vfs_fat_rawfile_locals_dict
|
||||
);
|
||||
|
||||
STATIC const mp_stream_p_t vfs_fat_textio_stream_p = {
|
||||
.read = file_obj_read,
|
||||
.write = file_obj_write,
|
||||
.ioctl = file_obj_ioctl,
|
||||
.is_text = true,
|
||||
};
|
||||
|
||||
MP_DEFINE_CONST_OBJ_TYPE(
|
||||
mp_type_vfs_fat_textio,
|
||||
MP_QSTR_TextIOWrapper,
|
||||
MP_TYPE_FLAG_ITER_IS_STREAM,
|
||||
print, file_obj_print,
|
||||
protocol, &vfs_fat_textio_stream_p,
|
||||
locals_dict, &vfs_fat_rawfile_locals_dict
|
||||
);
|
||||
|
||||
// Factory function for I/O stream classes
|
||||
STATIC mp_obj_t fat_vfs_open(mp_obj_t self_in, mp_obj_t path_in, mp_obj_t mode_in) {
|
||||
fs_user_mount_t *self = MP_OBJ_TO_PTR(self_in);
|
||||
|
||||
const mp_obj_type_t *type = &mp_type_vfs_fat_textio;
|
||||
int mode = 0;
|
||||
const char *mode_s = mp_obj_str_get_str(args[1].u_obj);
|
||||
const char *mode_s = mp_obj_str_get_str(mode_in);
|
||||
uint32_t rwxa_count = 0;
|
||||
uint32_t bt_count = 0;
|
||||
uint32_t plus_count = 0;
|
||||
@ -187,12 +232,10 @@ STATIC mp_obj_t file_open(fs_user_mount_t *vfs, const mp_obj_type_t *type, mp_ar
|
||||
mode |= FA_READ | FA_WRITE;
|
||||
plus_count++;
|
||||
break;
|
||||
#if MICROPY_PY_IO_FILEIO
|
||||
case 'b':
|
||||
bt_count++;
|
||||
type = &mp_type_vfs_fat_fileio;
|
||||
break;
|
||||
#endif
|
||||
case 't':
|
||||
bt_count++;
|
||||
type = &mp_type_vfs_fat_textio;
|
||||
@ -207,8 +250,8 @@ STATIC mp_obj_t file_open(fs_user_mount_t *vfs, const mp_obj_type_t *type, mp_ar
|
||||
mp_arg_error_invalid(MP_QSTR_mode);
|
||||
}
|
||||
|
||||
assert(vfs != NULL);
|
||||
if ((mode & FA_WRITE) != 0 && !filesystem_is_writable_by_python(vfs)) {
|
||||
assert(self != NULL);
|
||||
if ((mode & FA_WRITE) != 0 && !filesystem_is_writable_by_python(self)) {
|
||||
mp_raise_OSError(MP_EROFS);
|
||||
}
|
||||
|
||||
@ -216,12 +259,13 @@ STATIC mp_obj_t file_open(fs_user_mount_t *vfs, const mp_obj_type_t *type, mp_ar
|
||||
pyb_file_obj_t *o = m_new_obj_with_finaliser(pyb_file_obj_t);
|
||||
o->base.type = type;
|
||||
|
||||
const char *fname = mp_obj_str_get_str(args[0].u_obj);
|
||||
FRESULT res = f_open(&vfs->fatfs, &o->fp, fname, mode);
|
||||
const char *fname = mp_obj_str_get_str(path_in);
|
||||
FRESULT res = f_open(&self->fatfs, &o->fp, fname, mode);
|
||||
if (res != FR_OK) {
|
||||
m_del_obj(pyb_file_obj_t, o);
|
||||
mp_raise_OSError_errno_str(fresult_to_errno_table[res], args[0].u_obj);
|
||||
mp_raise_OSError_errno_str(fresult_to_errno_table[res], path_in);
|
||||
}
|
||||
// CIRCUITPY does fast seek.
|
||||
// If we're reading, turn on fast seek.
|
||||
if (mode == FA_READ) {
|
||||
// One call to determine how much space we need.
|
||||
@ -249,87 +293,6 @@ STATIC mp_obj_t file_open(fs_user_mount_t *vfs, const mp_obj_type_t *type, mp_ar
|
||||
|
||||
return MP_OBJ_FROM_PTR(o);
|
||||
}
|
||||
|
||||
STATIC mp_obj_t file_obj_make_new(const mp_obj_type_t *type, size_t n_args, size_t n_kw, const mp_obj_t *args) {
|
||||
mp_arg_val_t arg_vals[FILE_OPEN_NUM_ARGS];
|
||||
mp_arg_parse_all_kw_array(n_args, n_kw, args, FILE_OPEN_NUM_ARGS, file_open_args, arg_vals);
|
||||
return file_open(NULL, type, arg_vals);
|
||||
}
|
||||
|
||||
// TODO gc hook to close the file if not already closed
|
||||
|
||||
STATIC const mp_rom_map_elem_t vfs_fat_rawfile_locals_dict_table[] = {
|
||||
{ MP_ROM_QSTR(MP_QSTR_read), MP_ROM_PTR(&mp_stream_read_obj) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_readinto), MP_ROM_PTR(&mp_stream_readinto_obj) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_readline), MP_ROM_PTR(&mp_stream_unbuffered_readline_obj) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_readlines), MP_ROM_PTR(&mp_stream_unbuffered_readlines_obj) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_write), MP_ROM_PTR(&mp_stream_write_obj) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_flush), MP_ROM_PTR(&mp_stream_flush_obj) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_close), MP_ROM_PTR(&mp_stream_close_obj) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_seek), MP_ROM_PTR(&mp_stream_seek_obj) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_tell), MP_ROM_PTR(&mp_stream_tell_obj) },
|
||||
{ MP_ROM_QSTR(MP_QSTR___del__), MP_ROM_PTR(&mp_stream_close_obj) },
|
||||
{ MP_ROM_QSTR(MP_QSTR___enter__), MP_ROM_PTR(&mp_identity_obj) },
|
||||
{ MP_ROM_QSTR(MP_QSTR___exit__), MP_ROM_PTR(&file_obj___exit___obj) },
|
||||
};
|
||||
|
||||
STATIC MP_DEFINE_CONST_DICT(vfs_fat_rawfile_locals_dict, vfs_fat_rawfile_locals_dict_table);
|
||||
|
||||
#if MICROPY_PY_IO_FILEIO
|
||||
STATIC const mp_stream_p_t vfs_fat_fileio_stream_p = {
|
||||
MP_PROTO_IMPLEMENT(MP_QSTR_protocol_stream)
|
||||
.read = file_obj_read,
|
||||
.write = file_obj_write,
|
||||
.ioctl = file_obj_ioctl,
|
||||
};
|
||||
|
||||
const mp_obj_type_t mp_type_vfs_fat_fileio = {
|
||||
{ &mp_type_type },
|
||||
.flags = MP_TYPE_FLAG_EXTENDED,
|
||||
.name = MP_QSTR_FileIO,
|
||||
.print = file_obj_print,
|
||||
.make_new = file_obj_make_new,
|
||||
.locals_dict = (mp_obj_dict_t *)&vfs_fat_rawfile_locals_dict,
|
||||
MP_TYPE_EXTENDED_FIELDS(
|
||||
.getiter = mp_identity_getiter,
|
||||
.iternext = mp_stream_unbuffered_iter,
|
||||
.protocol = &vfs_fat_fileio_stream_p,
|
||||
),
|
||||
};
|
||||
#endif
|
||||
|
||||
STATIC const mp_stream_p_t vfs_fat_textio_stream_p = {
|
||||
MP_PROTO_IMPLEMENT(MP_QSTR_protocol_stream)
|
||||
.read = file_obj_read,
|
||||
.write = file_obj_write,
|
||||
.ioctl = file_obj_ioctl,
|
||||
.is_text = true,
|
||||
};
|
||||
|
||||
const mp_obj_type_t mp_type_vfs_fat_textio = {
|
||||
{ &mp_type_type },
|
||||
.flags = MP_TYPE_FLAG_EXTENDED,
|
||||
.name = MP_QSTR_TextIOWrapper,
|
||||
.print = file_obj_print,
|
||||
.make_new = file_obj_make_new,
|
||||
.locals_dict = (mp_obj_dict_t *)&vfs_fat_rawfile_locals_dict,
|
||||
MP_TYPE_EXTENDED_FIELDS(
|
||||
.getiter = mp_identity_getiter,
|
||||
.iternext = mp_stream_unbuffered_iter,
|
||||
.protocol = &vfs_fat_textio_stream_p,
|
||||
),
|
||||
};
|
||||
|
||||
// Factory function for I/O stream classes
|
||||
STATIC mp_obj_t fatfs_builtin_open_self(mp_obj_t self_in, mp_obj_t path, mp_obj_t mode) {
|
||||
// TODO: analyze buffering args and instantiate appropriate type
|
||||
fs_user_mount_t *self = MP_OBJ_TO_PTR(self_in);
|
||||
mp_arg_val_t arg_vals[FILE_OPEN_NUM_ARGS];
|
||||
arg_vals[0].u_obj = path;
|
||||
arg_vals[1].u_obj = mode;
|
||||
arg_vals[2].u_obj = mp_const_none;
|
||||
return file_open(self, &mp_type_vfs_fat_textio, arg_vals);
|
||||
}
|
||||
MP_DEFINE_CONST_FUN_OBJ_3(fat_vfs_open_obj, fatfs_builtin_open_self);
|
||||
MP_DEFINE_CONST_FUN_OBJ_3(fat_vfs_open_obj, fat_vfs_open);
|
||||
|
||||
#endif // MICROPY_VFS && MICROPY_VFS_FAT
|
||||
|
@ -26,12 +26,13 @@
|
||||
|
||||
#include "py/runtime.h"
|
||||
#include "py/mphal.h"
|
||||
|
||||
#if MICROPY_VFS && (MICROPY_VFS_LFS1 || MICROPY_VFS_LFS2)
|
||||
|
||||
#include "shared/timeutils/timeutils.h"
|
||||
#include "extmod/vfs.h"
|
||||
#include "extmod/vfs_lfs.h"
|
||||
|
||||
#if MICROPY_VFS && (MICROPY_VFS_LFS1 || MICROPY_VFS_LFS2)
|
||||
|
||||
enum { LFS_MAKE_ARG_bdev, LFS_MAKE_ARG_readsize, LFS_MAKE_ARG_progsize, LFS_MAKE_ARG_lookahead, LFS_MAKE_ARG_mtime };
|
||||
|
||||
static const mp_arg_t lfs_make_allowed_args[] = {
|
||||
|
@ -24,6 +24,9 @@
|
||||
* THE SOFTWARE.
|
||||
*/
|
||||
|
||||
// This file should be compiled when included from vfs_lfs.c.
|
||||
#if defined(LFS_BUILD_VERSION)
|
||||
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
|
||||
@ -36,6 +39,10 @@
|
||||
#include "extmod/vfs.h"
|
||||
#include "shared/timeutils/timeutils.h"
|
||||
|
||||
#if !MICROPY_ENABLE_FINALISER
|
||||
#error "MICROPY_VFS_LFS requires MICROPY_ENABLE_FINALISER"
|
||||
#endif
|
||||
|
||||
STATIC int MP_VFS_LFSx(dev_ioctl)(const struct LFSx_API (config) * c, int cmd, int arg, bool must_return_int) {
|
||||
mp_obj_t ret = mp_vfs_blockdev_ioctl(c->context, cmd, arg);
|
||||
int ret_i = 0;
|
||||
@ -155,6 +162,7 @@ STATIC MP_DEFINE_CONST_FUN_OBJ_3(MP_VFS_LFSx(open_obj), MP_VFS_LFSx(file_open));
|
||||
typedef struct MP_VFS_LFSx (_ilistdir_it_t) {
|
||||
mp_obj_base_t base;
|
||||
mp_fun_1_t iternext;
|
||||
mp_fun_1_t finaliser;
|
||||
bool is_str;
|
||||
MP_OBJ_VFS_LFSx *vfs;
|
||||
LFSx_API(dir_t) dir;
|
||||
@ -163,11 +171,16 @@ typedef struct MP_VFS_LFSx (_ilistdir_it_t) {
|
||||
STATIC mp_obj_t MP_VFS_LFSx(ilistdir_it_iternext)(mp_obj_t self_in) {
|
||||
MP_VFS_LFSx(ilistdir_it_t) * self = MP_OBJ_TO_PTR(self_in);
|
||||
|
||||
if (self->vfs == NULL) {
|
||||
return MP_OBJ_STOP_ITERATION;
|
||||
}
|
||||
|
||||
struct LFSx_API (info) info;
|
||||
for (;;) {
|
||||
int ret = LFSx_API(dir_read)(&self->vfs->lfs, &self->dir, &info);
|
||||
if (ret == 0) {
|
||||
LFSx_API(dir_close)(&self->vfs->lfs, &self->dir);
|
||||
self->vfs = NULL;
|
||||
return MP_OBJ_STOP_ITERATION;
|
||||
}
|
||||
if (!(info.name[0] == '.' && (info.name[1] == '\0'
|
||||
@ -190,6 +203,14 @@ STATIC mp_obj_t MP_VFS_LFSx(ilistdir_it_iternext)(mp_obj_t self_in) {
|
||||
return MP_OBJ_FROM_PTR(t);
|
||||
}
|
||||
|
||||
STATIC mp_obj_t MP_VFS_LFSx(ilistdir_it_del)(mp_obj_t self_in) {
|
||||
MP_VFS_LFSx(ilistdir_it_t) * self = MP_OBJ_TO_PTR(self_in);
|
||||
if (self->vfs != NULL) {
|
||||
LFSx_API(dir_close)(&self->vfs->lfs, &self->dir);
|
||||
}
|
||||
return mp_const_none;
|
||||
}
|
||||
|
||||
STATIC mp_obj_t MP_VFS_LFSx(ilistdir_func)(size_t n_args, const mp_obj_t *args) {
|
||||
MP_OBJ_VFS_LFSx *self = MP_OBJ_TO_PTR(args[0]);
|
||||
bool is_str_type = true;
|
||||
@ -203,14 +224,17 @@ STATIC mp_obj_t MP_VFS_LFSx(ilistdir_func)(size_t n_args, const mp_obj_t *args)
|
||||
path = vstr_null_terminated_str(&self->cur_dir);
|
||||
}
|
||||
|
||||
MP_VFS_LFSx(ilistdir_it_t) * iter = mp_obj_malloc(MP_VFS_LFSx(ilistdir_it_t), &mp_type_polymorph_iter);
|
||||
MP_VFS_LFSx(ilistdir_it_t) * iter = m_new_obj_with_finaliser(MP_VFS_LFSx(ilistdir_it_t));
|
||||
iter->base.type = &mp_type_polymorph_iter_with_finaliser;
|
||||
|
||||
iter->iternext = MP_VFS_LFSx(ilistdir_it_iternext);
|
||||
iter->finaliser = MP_VFS_LFSx(ilistdir_it_del);
|
||||
iter->is_str = is_str_type;
|
||||
iter->vfs = self;
|
||||
int ret = LFSx_API(dir_open)(&self->lfs, &iter->dir, path);
|
||||
if (ret < 0) {
|
||||
mp_raise_OSError(-ret);
|
||||
}
|
||||
iter->vfs = self;
|
||||
return MP_OBJ_FROM_PTR(iter);
|
||||
}
|
||||
STATIC MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(MP_VFS_LFSx(ilistdir_obj), 1, 2, MP_VFS_LFSx(ilistdir_func));
|
||||
@ -481,17 +505,21 @@ STATIC const mp_vfs_proto_t MP_VFS_LFSx(proto) = {
|
||||
.import_stat = MP_VFS_LFSx(import_stat),
|
||||
};
|
||||
|
||||
const mp_obj_type_t MP_TYPE_VFS_LFSx = {
|
||||
{ &mp_type_type },
|
||||
.flags = MP_TYPE_FLAG_EXTENDED,
|
||||
#if LFS_BUILD_VERSION == 1
|
||||
.name = MP_QSTR_VfsLfs1,
|
||||
#else
|
||||
.name = MP_QSTR_VfsLfs2,
|
||||
#endif
|
||||
.make_new = MP_VFS_LFSx(make_new),
|
||||
.locals_dict = (mp_obj_dict_t *)&MP_VFS_LFSx(locals_dict),
|
||||
MP_TYPE_EXTENDED_FIELDS(
|
||||
.protocol = &MP_VFS_LFSx(proto),
|
||||
),
|
||||
};
|
||||
#if LFS_BUILD_VERSION == 1
|
||||
#define VFS_LFSx_QSTR MP_QSTR_VfsLfs1
|
||||
#else
|
||||
#define VFS_LFSx_QSTR MP_QSTR_VfsLfs2
|
||||
#endif
|
||||
|
||||
MP_DEFINE_CONST_OBJ_TYPE(
|
||||
MP_TYPE_VFS_LFSx,
|
||||
VFS_LFSx_QSTR,
|
||||
MP_TYPE_FLAG_NONE,
|
||||
make_new, MP_VFS_LFSx(make_new),
|
||||
protocol, &MP_VFS_LFSx(proto),
|
||||
locals_dict, &MP_VFS_LFSx(locals_dict)
|
||||
);
|
||||
|
||||
#undef VFS_LFSx_QSTR
|
||||
|
||||
#endif // defined(LFS_BUILD_VERSION)
|
||||
|
@ -24,6 +24,9 @@
|
||||
* THE SOFTWARE.
|
||||
*/
|
||||
|
||||
// This file should be compiled when included from vfs_lfs.c.
|
||||
#if defined(LFS_BUILD_VERSION)
|
||||
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
|
||||
@ -68,11 +71,9 @@ mp_obj_t MP_VFS_LFSx(file_open)(mp_obj_t self_in, mp_obj_t path_in, mp_obj_t mod
|
||||
case '+':
|
||||
flags |= LFSx_MACRO(_O_RDWR);
|
||||
break;
|
||||
#if MICROPY_PY_IO_FILEIO
|
||||
case 'b':
|
||||
type = &MP_TYPE_VFS_LFSx_(_fileio);
|
||||
break;
|
||||
#endif
|
||||
case 't':
|
||||
type = &MP_TYPE_VFS_LFSx_(_textio);
|
||||
break;
|
||||
@ -216,45 +217,35 @@ STATIC const mp_rom_map_elem_t MP_VFS_LFSx(file_locals_dict_table)[] = {
|
||||
};
|
||||
STATIC MP_DEFINE_CONST_DICT(MP_VFS_LFSx(file_locals_dict), MP_VFS_LFSx(file_locals_dict_table));
|
||||
|
||||
#if MICROPY_PY_IO_FILEIO
|
||||
STATIC const mp_stream_p_t MP_VFS_LFSx(fileio_stream_p) = {
|
||||
MP_PROTO_IMPLEMENT(MP_QSTR_protocol_stream)
|
||||
.read = MP_VFS_LFSx(file_read),
|
||||
.write = MP_VFS_LFSx(file_write),
|
||||
.ioctl = MP_VFS_LFSx(file_ioctl),
|
||||
};
|
||||
|
||||
const mp_obj_type_t MP_TYPE_VFS_LFSx_(_fileio) = {
|
||||
{ &mp_type_type },
|
||||
.flags = MP_TYPE_FLAG_EXTENDED,
|
||||
.name = MP_QSTR_FileIO,
|
||||
.print = MP_VFS_LFSx(file_print),
|
||||
.locals_dict = (mp_obj_dict_t *)&MP_VFS_LFSx(file_locals_dict),
|
||||
MP_TYPE_EXTENDED_FIELDS(
|
||||
.getiter = mp_identity_getiter,
|
||||
.iternext = mp_stream_unbuffered_iter,
|
||||
.protocol = &MP_VFS_LFSx(fileio_stream_p),
|
||||
),
|
||||
};
|
||||
#endif
|
||||
MP_DEFINE_CONST_OBJ_TYPE(
|
||||
MP_TYPE_VFS_LFSx_(_fileio),
|
||||
MP_QSTR_FileIO,
|
||||
MP_TYPE_FLAG_ITER_IS_STREAM,
|
||||
print, MP_VFS_LFSx(file_print),
|
||||
protocol, &MP_VFS_LFSx(fileio_stream_p),
|
||||
locals_dict, &MP_VFS_LFSx(file_locals_dict)
|
||||
);
|
||||
|
||||
STATIC const mp_stream_p_t MP_VFS_LFSx(textio_stream_p) = {
|
||||
MP_PROTO_IMPLEMENT(MP_QSTR_protocol_stream)
|
||||
.read = MP_VFS_LFSx(file_read),
|
||||
.write = MP_VFS_LFSx(file_write),
|
||||
.ioctl = MP_VFS_LFSx(file_ioctl),
|
||||
.is_text = true,
|
||||
};
|
||||
|
||||
const mp_obj_type_t MP_TYPE_VFS_LFSx_(_textio) = {
|
||||
{ &mp_type_type },
|
||||
.flags = MP_TYPE_FLAG_EXTENDED,
|
||||
.name = MP_QSTR_TextIOWrapper,
|
||||
.print = MP_VFS_LFSx(file_print),
|
||||
.locals_dict = (mp_obj_dict_t *)&MP_VFS_LFSx(file_locals_dict),
|
||||
MP_TYPE_EXTENDED_FIELDS(
|
||||
.getiter = mp_identity_getiter,
|
||||
.iternext = mp_stream_unbuffered_iter,
|
||||
.protocol = &MP_VFS_LFSx(textio_stream_p),
|
||||
),
|
||||
};
|
||||
MP_DEFINE_CONST_OBJ_TYPE(
|
||||
MP_TYPE_VFS_LFSx_(_textio),
|
||||
MP_QSTR_TextIOWrapper,
|
||||
MP_TYPE_FLAG_ITER_IS_STREAM,
|
||||
print, MP_VFS_LFSx(file_print),
|
||||
protocol, &MP_VFS_LFSx(textio_stream_p),
|
||||
locals_dict, &MP_VFS_LFSx(file_locals_dict)
|
||||
);
|
||||
|
||||
#endif // defined(LFS_BUILD_VERSION)
|
||||
|
@ -31,11 +31,17 @@
|
||||
#include "extmod/vfs.h"
|
||||
#include "extmod/vfs_posix.h"
|
||||
|
||||
#if defined(MICROPY_VFS_POSIX) && MICROPY_VFS_POSIX
|
||||
#if MICROPY_VFS_POSIX
|
||||
|
||||
#if !MICROPY_ENABLE_FINALISER
|
||||
#error "MICROPY_VFS_POSIX requires MICROPY_ENABLE_FINALISER"
|
||||
#endif
|
||||
|
||||
#include <errno.h>
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include <sys/stat.h>
|
||||
#include <unistd.h>
|
||||
#include <dirent.h>
|
||||
#ifdef _MSC_VER
|
||||
#include <direct.h> // For mkdir etc.
|
||||
@ -138,7 +144,7 @@ STATIC mp_obj_t vfs_posix_open(mp_obj_t self_in, mp_obj_t path_in, mp_obj_t mode
|
||||
if (!mp_obj_is_small_int(path_in)) {
|
||||
path_in = vfs_posix_get_path_obj(self, path_in);
|
||||
}
|
||||
return mp_vfs_posix_file_open(&mp_type_textio, path_in, mode_in);
|
||||
return mp_vfs_posix_file_open(&mp_type_vfs_posix_textio, path_in, mode_in);
|
||||
}
|
||||
STATIC MP_DEFINE_CONST_FUN_OBJ_3(vfs_posix_open_obj, vfs_posix_open);
|
||||
|
||||
@ -162,6 +168,7 @@ STATIC MP_DEFINE_CONST_FUN_OBJ_1(vfs_posix_getcwd_obj, vfs_posix_getcwd);
|
||||
typedef struct _vfs_posix_ilistdir_it_t {
|
||||
mp_obj_base_t base;
|
||||
mp_fun_1_t iternext;
|
||||
mp_fun_1_t finaliser;
|
||||
bool is_str;
|
||||
DIR *dir;
|
||||
} vfs_posix_ilistdir_it_t;
|
||||
@ -185,7 +192,7 @@ STATIC mp_obj_t vfs_posix_ilistdir_it_iternext(mp_obj_t self_in) {
|
||||
MP_THREAD_GIL_ENTER();
|
||||
const char *fn = dirent->d_name;
|
||||
|
||||
if (fn[0] == '.' && (fn[1] == 0 || fn[1] == '.')) {
|
||||
if (fn[0] == '.' && (fn[1] == 0 || (fn[1] == '.' && fn[2] == 0))) {
|
||||
// skip . and ..
|
||||
continue;
|
||||
}
|
||||
@ -226,10 +233,22 @@ STATIC mp_obj_t vfs_posix_ilistdir_it_iternext(mp_obj_t self_in) {
|
||||
}
|
||||
}
|
||||
|
||||
STATIC mp_obj_t vfs_posix_ilistdir_it_del(mp_obj_t self_in) {
|
||||
vfs_posix_ilistdir_it_t *self = MP_OBJ_TO_PTR(self_in);
|
||||
if (self->dir != NULL) {
|
||||
MP_THREAD_GIL_EXIT();
|
||||
closedir(self->dir);
|
||||
MP_THREAD_GIL_ENTER();
|
||||
}
|
||||
return mp_const_none;
|
||||
}
|
||||
|
||||
STATIC mp_obj_t vfs_posix_ilistdir(mp_obj_t self_in, mp_obj_t path_in) {
|
||||
mp_obj_vfs_posix_t *self = MP_OBJ_TO_PTR(self_in);
|
||||
vfs_posix_ilistdir_it_t *iter = mp_obj_malloc(vfs_posix_ilistdir_it_t, &mp_type_polymorph_iter);
|
||||
vfs_posix_ilistdir_it_t *iter = m_new_obj_with_finaliser(vfs_posix_ilistdir_it_t);
|
||||
iter->base.type = &mp_type_polymorph_iter_with_finaliser;
|
||||
iter->iternext = vfs_posix_ilistdir_it_iternext;
|
||||
iter->finaliser = vfs_posix_ilistdir_it_del;
|
||||
iter->is_str = mp_obj_get_type(path_in) == &mp_type_str;
|
||||
const char *path = vfs_posix_get_path_str(self, path_in);
|
||||
if (path[0] == '\0') {
|
||||
@ -378,19 +397,16 @@ STATIC const mp_rom_map_elem_t vfs_posix_locals_dict_table[] = {
|
||||
STATIC MP_DEFINE_CONST_DICT(vfs_posix_locals_dict, vfs_posix_locals_dict_table);
|
||||
|
||||
STATIC const mp_vfs_proto_t vfs_posix_proto = {
|
||||
MP_PROTO_IMPLEMENT(MP_QSTR_protocol_vfs)
|
||||
.import_stat = mp_vfs_posix_import_stat,
|
||||
};
|
||||
|
||||
const mp_obj_type_t mp_type_vfs_posix = {
|
||||
{ &mp_type_type },
|
||||
.flags = MP_TYPE_FLAG_EXTENDED,
|
||||
.name = MP_QSTR_VfsPosix,
|
||||
.locals_dict = (mp_obj_dict_t *)&vfs_posix_locals_dict,
|
||||
.make_new = vfs_posix_make_new,
|
||||
MP_TYPE_EXTENDED_FIELDS(
|
||||
.protocol = &vfs_posix_proto,
|
||||
),
|
||||
};
|
||||
MP_DEFINE_CONST_OBJ_TYPE(
|
||||
mp_type_vfs_posix,
|
||||
MP_QSTR_VfsPosix,
|
||||
MP_TYPE_FLAG_NONE,
|
||||
make_new, vfs_posix_make_new,
|
||||
protocol, &vfs_posix_proto,
|
||||
locals_dict, &vfs_posix_locals_dict
|
||||
);
|
||||
|
||||
#endif // MICROPY_VFS_POSIX
|
||||
|
@ -29,9 +29,8 @@
|
||||
#include "py/runtime.h"
|
||||
#include "py/stream.h"
|
||||
#include "extmod/vfs_posix.h"
|
||||
#include "supervisor/shared/translate/translate.h"
|
||||
|
||||
#if (defined(MICROPY_VFS_POSIX) && MICROPY_VFS_POSIX) || (defined(MICROPY_VFS_POSIX_FILE) && MICROPY_VFS_POSIX_FILE)
|
||||
#if MICROPY_VFS_POSIX
|
||||
|
||||
#include <fcntl.h>
|
||||
#include <unistd.h>
|
||||
@ -47,7 +46,7 @@ typedef struct _mp_obj_vfs_posix_file_t {
|
||||
int fd;
|
||||
} mp_obj_vfs_posix_file_t;
|
||||
|
||||
#ifdef MICROPY_CPYTHON_COMPAT
|
||||
#if MICROPY_CPYTHON_COMPAT
|
||||
STATIC void check_fd_is_open(const mp_obj_vfs_posix_file_t *o) {
|
||||
if (o->fd < 0) {
|
||||
mp_raise_ValueError(MP_ERROR_TEXT("I/O operation on closed file"));
|
||||
@ -60,11 +59,11 @@ STATIC void check_fd_is_open(const mp_obj_vfs_posix_file_t *o) {
|
||||
STATIC void vfs_posix_file_print(const mp_print_t *print, mp_obj_t self_in, mp_print_kind_t kind) {
|
||||
(void)kind;
|
||||
mp_obj_vfs_posix_file_t *self = MP_OBJ_TO_PTR(self_in);
|
||||
mp_printf(print, "<io.%q %d>", mp_obj_get_type_qstr(self_in), self->fd);
|
||||
mp_printf(print, "<io.%s %d>", mp_obj_get_type_str(self_in), self->fd);
|
||||
}
|
||||
|
||||
mp_obj_t mp_vfs_posix_file_open(const mp_obj_type_t *type, mp_obj_t file_in, mp_obj_t mode_in) {
|
||||
mp_obj_vfs_posix_file_t *o = m_new_obj(mp_obj_vfs_posix_file_t);
|
||||
mp_obj_vfs_posix_file_t *o = m_new_obj_with_finaliser(mp_obj_vfs_posix_file_t);
|
||||
const char *mode_s = mp_obj_str_get_str(mode_in);
|
||||
|
||||
int mode_rw = 0, mode_x = 0;
|
||||
@ -84,15 +83,12 @@ mp_obj_t mp_vfs_posix_file_open(const mp_obj_type_t *type, mp_obj_t file_in, mp_
|
||||
case '+':
|
||||
mode_rw = O_RDWR;
|
||||
break;
|
||||
#if MICROPY_PY_IO_FILEIO
|
||||
// If we don't have io.FileIO, then files are in text mode implicitly
|
||||
case 'b':
|
||||
type = &mp_type_vfs_posix_fileio;
|
||||
break;
|
||||
case 't':
|
||||
type = &mp_type_vfs_posix_textio;
|
||||
break;
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
@ -112,17 +108,6 @@ mp_obj_t mp_vfs_posix_file_open(const mp_obj_type_t *type, mp_obj_t file_in, mp_
|
||||
return MP_OBJ_FROM_PTR(o);
|
||||
}
|
||||
|
||||
STATIC mp_obj_t vfs_posix_file_make_new(const mp_obj_type_t *type, size_t n_args, size_t n_kw, const mp_obj_t *args) {
|
||||
static const mp_arg_t allowed_args[] = {
|
||||
{ MP_QSTR_file, MP_ARG_OBJ | MP_ARG_REQUIRED, {.u_rom_obj = MP_ROM_NONE} },
|
||||
{ MP_QSTR_mode, MP_ARG_OBJ, {.u_rom_obj = MP_ROM_QSTR(MP_QSTR_r)} },
|
||||
};
|
||||
|
||||
mp_arg_val_t arg_vals[MP_ARRAY_SIZE(allowed_args)];
|
||||
mp_arg_parse_all_kw_array(n_args, n_kw, args, MP_ARRAY_SIZE(allowed_args), allowed_args, arg_vals);
|
||||
return mp_vfs_posix_file_open(type, arg_vals[0].u_obj, arg_vals[1].u_obj);
|
||||
}
|
||||
|
||||
STATIC mp_obj_t vfs_posix_file_fileno(mp_obj_t self_in) {
|
||||
mp_obj_vfs_posix_file_t *self = MP_OBJ_TO_PTR(self_in);
|
||||
check_fd_is_open(self);
|
||||
@ -150,6 +135,12 @@ STATIC mp_uint_t vfs_posix_file_read(mp_obj_t o_in, void *buf, mp_uint_t size, i
|
||||
STATIC mp_uint_t vfs_posix_file_write(mp_obj_t o_in, const void *buf, mp_uint_t size, int *errcode) {
|
||||
mp_obj_vfs_posix_file_t *o = MP_OBJ_TO_PTR(o_in);
|
||||
check_fd_is_open(o);
|
||||
#if MICROPY_PY_OS_DUPTERM
|
||||
if (o->fd <= STDERR_FILENO) {
|
||||
mp_hal_stdout_tx_strn(buf, size);
|
||||
return size;
|
||||
}
|
||||
#endif
|
||||
ssize_t r;
|
||||
MP_HAL_RETRY_SYSCALL(r, write(o->fd, buf, size), {
|
||||
*errcode = err;
|
||||
@ -194,12 +185,12 @@ STATIC mp_uint_t vfs_posix_file_ioctl(mp_obj_t o_in, mp_uint_t request, uintptr_
|
||||
return 0;
|
||||
}
|
||||
case MP_STREAM_CLOSE:
|
||||
MP_THREAD_GIL_EXIT();
|
||||
close(o->fd);
|
||||
MP_THREAD_GIL_ENTER();
|
||||
#ifdef MICROPY_CPYTHON_COMPAT
|
||||
if (o->fd >= 0) {
|
||||
MP_THREAD_GIL_EXIT();
|
||||
close(o->fd);
|
||||
MP_THREAD_GIL_ENTER();
|
||||
}
|
||||
o->fd = -1;
|
||||
#endif
|
||||
return 0;
|
||||
case MP_STREAM_GET_FILENO:
|
||||
return o->fd;
|
||||
@ -246,59 +237,46 @@ STATIC const mp_rom_map_elem_t vfs_posix_rawfile_locals_dict_table[] = {
|
||||
{ MP_ROM_QSTR(MP_QSTR_tell), MP_ROM_PTR(&mp_stream_tell_obj) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_flush), MP_ROM_PTR(&mp_stream_flush_obj) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_close), MP_ROM_PTR(&mp_stream_close_obj) },
|
||||
{ MP_ROM_QSTR(MP_QSTR___del__), MP_ROM_PTR(&mp_stream_close_obj) },
|
||||
{ MP_ROM_QSTR(MP_QSTR___enter__), MP_ROM_PTR(&mp_identity_obj) },
|
||||
{ MP_ROM_QSTR(MP_QSTR___exit__), MP_ROM_PTR(&vfs_posix_file___exit___obj) },
|
||||
};
|
||||
|
||||
STATIC MP_DEFINE_CONST_DICT(vfs_posix_rawfile_locals_dict, vfs_posix_rawfile_locals_dict_table);
|
||||
|
||||
#if MICROPY_PY_IO_FILEIO
|
||||
STATIC const mp_stream_p_t vfs_posix_fileio_stream_p = {
|
||||
MP_PROTO_IMPLEMENT(MP_QSTR_protocol_stream)
|
||||
.read = vfs_posix_file_read,
|
||||
.write = vfs_posix_file_write,
|
||||
.ioctl = vfs_posix_file_ioctl,
|
||||
};
|
||||
|
||||
const mp_obj_type_t mp_type_vfs_posix_fileio = {
|
||||
{ &mp_type_type },
|
||||
.flags = MP_TYPE_FLAG_EXTENDED,
|
||||
.name = MP_QSTR_FileIO,
|
||||
.print = vfs_posix_file_print,
|
||||
.make_new = vfs_posix_file_make_new,
|
||||
.locals_dict = (mp_obj_dict_t *)&vfs_posix_rawfile_locals_dict,
|
||||
MP_TYPE_EXTENDED_FIELDS(
|
||||
.getiter = mp_identity_getiter,
|
||||
.iternext = mp_stream_unbuffered_iter,
|
||||
.protocol = &vfs_posix_fileio_stream_p,
|
||||
),
|
||||
};
|
||||
#endif
|
||||
MP_DEFINE_CONST_OBJ_TYPE(
|
||||
mp_type_vfs_posix_fileio,
|
||||
MP_QSTR_FileIO,
|
||||
MP_TYPE_FLAG_ITER_IS_STREAM,
|
||||
print, vfs_posix_file_print,
|
||||
protocol, &vfs_posix_fileio_stream_p,
|
||||
locals_dict, &vfs_posix_rawfile_locals_dict
|
||||
);
|
||||
|
||||
STATIC const mp_stream_p_t vfs_posix_textio_stream_p = {
|
||||
MP_PROTO_IMPLEMENT(MP_QSTR_protocol_stream)
|
||||
.read = vfs_posix_file_read,
|
||||
.write = vfs_posix_file_write,
|
||||
.ioctl = vfs_posix_file_ioctl,
|
||||
.is_text = true,
|
||||
};
|
||||
|
||||
const mp_obj_type_t mp_type_vfs_posix_textio = {
|
||||
{ &mp_type_type },
|
||||
.flags = MP_TYPE_FLAG_EXTENDED,
|
||||
.name = MP_QSTR_TextIOWrapper,
|
||||
.print = vfs_posix_file_print,
|
||||
.make_new = vfs_posix_file_make_new,
|
||||
.locals_dict = (mp_obj_dict_t *)&vfs_posix_rawfile_locals_dict,
|
||||
MP_TYPE_EXTENDED_FIELDS(
|
||||
.getiter = mp_identity_getiter,
|
||||
.iternext = mp_stream_unbuffered_iter,
|
||||
.protocol = &vfs_posix_textio_stream_p,
|
||||
),
|
||||
};
|
||||
MP_DEFINE_CONST_OBJ_TYPE(
|
||||
mp_type_vfs_posix_textio,
|
||||
MP_QSTR_TextIOWrapper,
|
||||
MP_TYPE_FLAG_ITER_IS_STREAM,
|
||||
print, vfs_posix_file_print,
|
||||
protocol, &vfs_posix_textio_stream_p,
|
||||
locals_dict, &vfs_posix_rawfile_locals_dict
|
||||
);
|
||||
|
||||
const mp_obj_vfs_posix_file_t mp_sys_stdin_obj = {{&mp_type_textio}, STDIN_FILENO};
|
||||
const mp_obj_vfs_posix_file_t mp_sys_stdout_obj = {{&mp_type_textio}, STDOUT_FILENO};
|
||||
const mp_obj_vfs_posix_file_t mp_sys_stderr_obj = {{&mp_type_textio}, STDERR_FILENO};
|
||||
const mp_obj_vfs_posix_file_t mp_sys_stdin_obj = {{&mp_type_vfs_posix_textio}, STDIN_FILENO};
|
||||
const mp_obj_vfs_posix_file_t mp_sys_stdout_obj = {{&mp_type_vfs_posix_textio}, STDOUT_FILENO};
|
||||
const mp_obj_vfs_posix_file_t mp_sys_stderr_obj = {{&mp_type_vfs_posix_textio}, STDERR_FILENO};
|
||||
|
||||
#endif // MICROPY_VFS_POSIX || MICROPY_VFS_POSIX_FILE
|
||||
#endif // MICROPY_VFS_POSIX
|
||||
|
@ -25,16 +25,15 @@
|
||||
*/
|
||||
|
||||
#include "extmod/virtpin.h"
|
||||
#include "py/proto.h"
|
||||
|
||||
int mp_virtual_pin_read(mp_obj_t pin) {
|
||||
mp_obj_base_t *s = (mp_obj_base_t *)MP_OBJ_TO_PTR(pin);
|
||||
const mp_pin_p_t *pin_p = mp_proto_get(MP_QSTR_protocol_pin, s);
|
||||
mp_pin_p_t *pin_p = (mp_pin_p_t *)MP_OBJ_TYPE_GET_SLOT(s->type, protocol);
|
||||
return pin_p->ioctl(pin, MP_PIN_READ, 0, NULL);
|
||||
}
|
||||
|
||||
void mp_virtual_pin_write(mp_obj_t pin, int value) {
|
||||
mp_obj_base_t *s = (mp_obj_base_t *)MP_OBJ_TO_PTR(pin);
|
||||
const mp_pin_p_t *pin_p = mp_proto_get(MP_QSTR_protocol_pin, s);
|
||||
mp_pin_p_t *pin_p = (mp_pin_p_t *)MP_OBJ_TYPE_GET_SLOT(s->type, protocol);
|
||||
pin_p->ioctl(pin, MP_PIN_WRITE, value, NULL);
|
||||
}
|
||||
|
@ -1 +1 @@
|
||||
Subproject commit 7c25d09be04a2979bcfb43b801de57594112808d
|
||||
Subproject commit c277db5ae86805006f563b782e0a85832a5c3450
|
@ -3,7 +3,7 @@
|
||||
#include <math.h>
|
||||
|
||||
float sqrtf(float x) {
|
||||
asm volatile (
|
||||
__asm__ volatile (
|
||||
"vsqrt.f32 %[r], %[x]\n"
|
||||
: [r] "=t" (x)
|
||||
: [x] "t" (x));
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
double sqrt(double x) {
|
||||
double ret;
|
||||
asm volatile (
|
||||
__asm__ volatile (
|
||||
"vsqrt.f64 %P0, %P1\n"
|
||||
: "=w" (ret)
|
||||
: "w" (x));
|
||||
|
1
lib/micropython-lib
Submodule
1
lib/micropython-lib
Submodule
@ -0,0 +1 @@
|
||||
Subproject commit e6b89eafa3b86d2e8e405450377d459600a30cd6
|
@ -72,8 +72,8 @@
|
||||
#define FF_USE_MKFS 1
|
||||
/* This option switches f_mkfs() function. (0:Disable or 1:Enable) */
|
||||
|
||||
#ifdef MICROPY_FF_MKFS_FAT32
|
||||
#define FF_MKFS_FAT32 MICROPY_FF_MKFS_FAT32
|
||||
#ifdef MICROPY_FATFS_MKFS_FAT32
|
||||
#define FF_MKFS_FAT32 MICROPY_FATFS_MKFS_FAT32
|
||||
#else
|
||||
#define FF_MKFS_FAT32 0
|
||||
#endif
|
||||
|
@ -6,7 +6,15 @@ int _re1_5_classmatch(const char *pc, const char *sp)
|
||||
int is_positive = (pc[-1] == Class);
|
||||
int cnt = *pc++;
|
||||
while (cnt--) {
|
||||
if (*sp >= *pc && *sp <= pc[1]) return is_positive;
|
||||
if (*pc == RE15_CLASS_NAMED_CLASS_INDICATOR) {
|
||||
if (_re1_5_namedclassmatch(pc + 1, sp)) {
|
||||
return is_positive;
|
||||
}
|
||||
} else {
|
||||
if (*sp >= *pc && *sp <= pc[1]) {
|
||||
return is_positive;
|
||||
}
|
||||
}
|
||||
pc += 2;
|
||||
}
|
||||
return !is_positive;
|
||||
|
@ -4,6 +4,9 @@
|
||||
|
||||
#include "re1.5.h"
|
||||
|
||||
// Matches: DSWdsw
|
||||
#define MATCH_NAMED_CLASS_CHAR(c) (((c) | 0x20) == 'd' || ((c) | 0x24) == 'w')
|
||||
|
||||
#define INSERT_CODE(at, num, pc) \
|
||||
((code ? memmove(code + at + num, code + at, pc - at) : 0), pc += num)
|
||||
#define REL(at, to) (to - at - 2)
|
||||
@ -32,7 +35,6 @@ static char unescape(char c) {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
static void _emit_checked(int at, char *code, int val, bool *err) {
|
||||
*err |= val != (int8_t)val;
|
||||
if (code) {
|
||||
@ -54,7 +56,7 @@ static const char *_compilecode(const char *re, ByteProg *prog, int sizecode)
|
||||
re++;
|
||||
if (!*re) return NULL; // Trailing backslash
|
||||
term = PC;
|
||||
if ((*re | 0x20) == 'd' || (*re | 0x20) == 's' || (*re | 0x20) == 'w') {
|
||||
if (MATCH_NAMED_CLASS_CHAR(*re)) {
|
||||
EMIT(PC++, NamedClass);
|
||||
EMIT(PC++, *re);
|
||||
} else {
|
||||
@ -87,27 +89,24 @@ static const char *_compilecode(const char *re, ByteProg *prog, int sizecode)
|
||||
PC++; // Skip # of pair byte
|
||||
prog->len++;
|
||||
for (cnt = 0; *re != ']'; re++, cnt++) {
|
||||
if (!*re) return NULL;
|
||||
const char *b = re;
|
||||
if (*re == '\\') {
|
||||
re += 1;
|
||||
if (!*re) return NULL; // Trailing backslash
|
||||
EMIT(PC++, unescape(*re));
|
||||
} else {
|
||||
EMIT(PC++, *re);
|
||||
char c = *re;
|
||||
if (c == '\\') {
|
||||
++re;
|
||||
c = *re;
|
||||
if (MATCH_NAMED_CLASS_CHAR(c)) {
|
||||
c = RE15_CLASS_NAMED_CLASS_INDICATOR;
|
||||
goto emit_char_pair;
|
||||
} else {
|
||||
c = unescape(c);
|
||||
}
|
||||
}
|
||||
if (!c) return NULL;
|
||||
if (re[1] == '-' && re[2] != ']') {
|
||||
re += 2;
|
||||
} else {
|
||||
re = b;
|
||||
}
|
||||
if (*re == '\\') {
|
||||
re += 1;
|
||||
if (!*re) return NULL; // Trailing backslash
|
||||
EMIT(PC++, unescape(*re));
|
||||
} else {
|
||||
EMIT(PC++, *re);
|
||||
}
|
||||
emit_char_pair:
|
||||
EMIT(PC++, c);
|
||||
EMIT(PC++, *re);
|
||||
}
|
||||
EMIT_CHECKED(term + 1, cnt);
|
||||
break;
|
||||
@ -255,6 +254,7 @@ int re1_5_compilecode(ByteProg *prog, const char *re)
|
||||
return 0;
|
||||
}
|
||||
|
||||
// CIRCUITPY debug as main program
|
||||
#if defined(DEBUG_COMPILECODE)
|
||||
#include <assert.h>
|
||||
void re1_5_fatal(char *x) {
|
||||
|
@ -140,6 +140,7 @@ struct Subject {
|
||||
|
||||
#define NON_ANCHORED_PREFIX 5
|
||||
#define HANDLE_ANCHORED(bytecode, is_anchored) ((is_anchored) ? (bytecode) + NON_ANCHORED_PREFIX : (bytecode))
|
||||
#define RE15_CLASS_NAMED_CLASS_INDICATOR 0
|
||||
|
||||
int re1_5_backtrack(ByteProg*, Subject*, const char**, int, int);
|
||||
int re1_5_pikevm(ByteProg*, Subject*, const char**, int, int);
|
||||
|
125
locale/ID.po
125
locale/ID.po
@ -142,7 +142,7 @@ msgstr ""
|
||||
msgid "%q in use"
|
||||
msgstr "%q sedang digunakan"
|
||||
|
||||
#: py/objstr.c py/objstrunicode.c
|
||||
#: py/objstr.c
|
||||
msgid "%q index out of range"
|
||||
msgstr "%q indeks di luar batas"
|
||||
|
||||
@ -229,7 +229,7 @@ msgstr ""
|
||||
msgid "%q must be of type %q or %q, not %q"
|
||||
msgstr ""
|
||||
|
||||
#: py/argcheck.c py/objstrunicode.c shared-module/synthio/__init__.c
|
||||
#: py/argcheck.c shared-module/synthio/__init__.c
|
||||
msgid "%q must be of type %q, not %q"
|
||||
msgstr ""
|
||||
|
||||
@ -282,6 +282,11 @@ msgstr ""
|
||||
msgid "%q[%u] waits on input outside of count"
|
||||
msgstr ""
|
||||
|
||||
#: py/runtime.c
|
||||
#, c-format
|
||||
msgid "%s"
|
||||
msgstr ""
|
||||
|
||||
#: ports/espressif/common-hal/espidf/__init__.c
|
||||
#, c-format
|
||||
msgid "%s error 0x%x"
|
||||
@ -633,7 +638,7 @@ msgid "Below minimum frame rate"
|
||||
msgstr "Di bawah frame rate minimum"
|
||||
|
||||
#: ports/raspberrypi/common-hal/audiobusio/I2SOut.c
|
||||
msgid "Bit clock and word select must be sequential pins"
|
||||
msgid "Bit clock and word select must be sequential GPIO pins"
|
||||
msgstr ""
|
||||
|
||||
#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c
|
||||
@ -1110,8 +1115,6 @@ msgstr ""
|
||||
msgid "Generic Failure"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/displayio/Display.c
|
||||
#: shared-bindings/displayio/EPaperDisplay.c
|
||||
#: shared-bindings/framebufferio/FramebufferDisplay.c
|
||||
#: shared-module/displayio/Display.c
|
||||
#: shared-module/framebufferio/FramebufferDisplay.c
|
||||
@ -1980,10 +1983,6 @@ msgstr "Buffer sumber dan tujuan harus memiliki panjang yang sama"
|
||||
msgid "Specify exactly one of data0 or data_pins"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/modure.c
|
||||
msgid "Splitting with sub-captures"
|
||||
msgstr "Memisahkan dengan menggunakan sub-captures"
|
||||
|
||||
#: ports/raspberrypi/common-hal/audiopwmio/PWMAudioOut.c
|
||||
msgid "Stereo left must be on PWM channel A"
|
||||
msgstr ""
|
||||
@ -2422,7 +2421,8 @@ msgid "__init__() should return None"
|
||||
msgstr "__init __() harus mengembalikan None"
|
||||
|
||||
#: py/objtype.c
|
||||
msgid "__init__() should return None, not '%q'"
|
||||
#, c-format
|
||||
msgid "__init__() should return None, not '%s'"
|
||||
msgstr ""
|
||||
|
||||
#: py/objobject.c
|
||||
@ -2512,8 +2512,8 @@ msgid "attempt to get argmin/argmax of an empty sequence"
|
||||
msgstr "berusaha mendapatkan argmin/argmax dari urutan kosong"
|
||||
|
||||
#: py/objstr.c
|
||||
msgid "attributes not supported yet"
|
||||
msgstr "atribut belum didukung"
|
||||
msgid "attributes not supported"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/ulab/code/ulab_tools.c
|
||||
msgid "axis is out of bounds"
|
||||
@ -2640,7 +2640,7 @@ msgstr "tidak dapat menetapkan ke ekspresi"
|
||||
msgid "can't cancel self"
|
||||
msgstr ""
|
||||
|
||||
#: py/objint.c py/runtime.c shared-module/adafruit_pixelbuf/PixelBuf.c
|
||||
#: py/runtime.c shared-module/adafruit_pixelbuf/PixelBuf.c
|
||||
msgid "can't convert %q to %q"
|
||||
msgstr ""
|
||||
|
||||
@ -2658,10 +2658,18 @@ msgstr ""
|
||||
msgid "can't convert '%q' object to %q implicitly"
|
||||
msgstr ""
|
||||
|
||||
#: py/objint.c
|
||||
msgid "can't convert NaN to int"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/ulab/code/numpy/vector.c
|
||||
msgid "can't convert complex to float"
|
||||
msgstr ""
|
||||
|
||||
#: py/objint.c
|
||||
msgid "can't convert inf to int"
|
||||
msgstr ""
|
||||
|
||||
#: py/obj.c
|
||||
msgid "can't convert to complex"
|
||||
msgstr ""
|
||||
@ -2690,14 +2698,14 @@ msgstr "tidak bisa menghapus ekspresi"
|
||||
msgid "can't do binary op between '%q' and '%q'"
|
||||
msgstr ""
|
||||
|
||||
#: py/objcomplex.c
|
||||
msgid "can't do truncated division of a complex number"
|
||||
msgstr ""
|
||||
|
||||
#: py/emitnative.c
|
||||
msgid "can't implicitly convert '%q' to 'bool'"
|
||||
msgstr ""
|
||||
|
||||
#: py/runtime.c
|
||||
msgid "can't import name %q"
|
||||
msgstr ""
|
||||
|
||||
#: py/emitnative.c
|
||||
msgid "can't load from '%q'"
|
||||
msgstr ""
|
||||
@ -2748,6 +2756,14 @@ msgid ""
|
||||
"can't switch from manual field specification to automatic field numbering"
|
||||
msgstr ""
|
||||
|
||||
#: py/objcomplex.c
|
||||
msgid "can't truncate-divide a complex number"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/moductypes.c
|
||||
msgid "can't unambiguously get sizeof scalar"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/moduasyncio.c
|
||||
msgid "can't wait"
|
||||
msgstr ""
|
||||
@ -2780,18 +2796,10 @@ msgstr ""
|
||||
msgid "cannot delete array elements"
|
||||
msgstr ""
|
||||
|
||||
#: py/runtime.c
|
||||
msgid "cannot import name %q"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/ulab/code/ndarray.c
|
||||
msgid "cannot reshape array"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/moductypes.c
|
||||
msgid "cannot unambiguously get sizeof scalar"
|
||||
msgstr ""
|
||||
|
||||
#: py/emitnative.c
|
||||
msgid "casting"
|
||||
msgstr ""
|
||||
@ -2840,6 +2848,10 @@ msgstr ""
|
||||
msgid "comparison of int and uint"
|
||||
msgstr ""
|
||||
|
||||
#: py/objcomplex.c
|
||||
msgid "complex divide by zero"
|
||||
msgstr ""
|
||||
|
||||
#: py/objfloat.c py/parsenum.c
|
||||
msgid "complex values not supported"
|
||||
msgstr ""
|
||||
@ -3412,8 +3424,8 @@ msgid "join expects a list of str/bytes objects consistent with self object"
|
||||
msgstr ""
|
||||
|
||||
#: py/argcheck.c
|
||||
msgid "keyword argument(s) not yet implemented - use normal args instead"
|
||||
msgstr "argumen keyword belum diimplementasi - gunakan args normal"
|
||||
msgid "keyword argument(s) not implemented - use normal args instead"
|
||||
msgstr ""
|
||||
|
||||
#: py/emitinlinethumb.c py/emitinlinextensa.c
|
||||
msgid "label '%q' not defined"
|
||||
@ -3423,10 +3435,6 @@ msgstr ""
|
||||
msgid "label redefined"
|
||||
msgstr "label didefinis ulang"
|
||||
|
||||
#: py/stream.c
|
||||
msgid "length argument not allowed for this type"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/audiomixer/MixerVoice.c
|
||||
msgid "level must be between 0 and 1"
|
||||
msgstr ""
|
||||
@ -3513,6 +3521,10 @@ msgstr ""
|
||||
msgid "memory allocation failed, heap is locked"
|
||||
msgstr ""
|
||||
|
||||
#: py/objarray.c
|
||||
msgid "memoryview offset too large"
|
||||
msgstr ""
|
||||
|
||||
#: py/objarray.c
|
||||
msgid "memoryview: length is not a multiple of itemsize"
|
||||
msgstr ""
|
||||
@ -3561,6 +3573,10 @@ msgstr ""
|
||||
msgid "name not defined"
|
||||
msgstr ""
|
||||
|
||||
#: py/persistentcode.c
|
||||
msgid "native code in .mpy unsupported"
|
||||
msgstr ""
|
||||
|
||||
#: py/asmthumb.c
|
||||
msgid "native method too big"
|
||||
msgstr ""
|
||||
@ -3635,7 +3651,7 @@ msgstr ""
|
||||
msgid "non-default argument follows default argument"
|
||||
msgstr "argumen non-default mengikuti argumen standar(default)"
|
||||
|
||||
#: extmod/modubinascii.c
|
||||
#: py/objstr.c
|
||||
msgid "non-hex digit found"
|
||||
msgstr "digit non-hex ditemukan"
|
||||
|
||||
@ -3725,7 +3741,7 @@ msgstr ""
|
||||
msgid "object with buffer protocol required"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/modubinascii.c
|
||||
#: py/objstr.c
|
||||
msgid "odd-length string"
|
||||
msgstr "panjang data string memiliki keganjilan (odd-length)"
|
||||
|
||||
@ -3745,11 +3761,6 @@ msgstr ""
|
||||
msgid "offset must be non-negative and no greater than buffer length"
|
||||
msgstr ""
|
||||
|
||||
#: py/objstr.c py/objstrunicode.c
|
||||
#, fuzzy
|
||||
msgid "offset out of bounds"
|
||||
msgstr "modul tidak ditemukan"
|
||||
|
||||
#: ports/nrf/common-hal/audiobusio/PDMIn.c
|
||||
#: ports/stm/common-hal/audiobusio/PDMIn.c
|
||||
msgid "only bit_depth=16 is supported"
|
||||
@ -3998,10 +4009,6 @@ msgstr ""
|
||||
msgid "sleep length must be non-negative"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/ulab/code/ndarray.c
|
||||
msgid "slice step can't be zero"
|
||||
msgstr ""
|
||||
|
||||
#: py/nativeglue.c
|
||||
msgid "slice unsupported"
|
||||
msgstr ""
|
||||
@ -4046,6 +4053,10 @@ msgstr ""
|
||||
msgid "source_bitmap must have value_count of 8"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/modure.c
|
||||
msgid "splitting with sub-captures"
|
||||
msgstr ""
|
||||
|
||||
#: py/objstr.c
|
||||
msgid "start/end indices"
|
||||
msgstr ""
|
||||
@ -4058,8 +4069,17 @@ msgstr ""
|
||||
msgid "stream operation not supported"
|
||||
msgstr ""
|
||||
|
||||
#: py/stream.c
|
||||
msgid "string not supported; use bytes or bytearray"
|
||||
#: py/objarray.c py/objstr.c
|
||||
msgid "string argument without an encoding"
|
||||
msgstr ""
|
||||
|
||||
#: py/objstrunicode.c
|
||||
msgid "string index out of range"
|
||||
msgstr ""
|
||||
|
||||
#: py/objstrunicode.c
|
||||
#, c-format
|
||||
msgid "string indices must be integers, not %s"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/moductypes.c
|
||||
@ -4090,6 +4110,10 @@ msgstr "sintaksis error pada JSON"
|
||||
msgid "syntax error in uctypes descriptor"
|
||||
msgstr "sintaksis error pada pendeskripsi uctypes"
|
||||
|
||||
#: extmod/utime_mphal.c
|
||||
msgid "ticks interval overflow"
|
||||
msgstr ""
|
||||
|
||||
#: ports/nrf/common-hal/watchdog/WatchDogTimer.c
|
||||
msgid "timeout duration exceeded the maximum supported value"
|
||||
msgstr ""
|
||||
@ -4363,6 +4387,19 @@ msgstr "zi harus berjenis float"
|
||||
msgid "zi must be of shape (n_section, 2)"
|
||||
msgstr "Zi harus berbentuk (n_section, 2)"
|
||||
|
||||
#~ msgid "Splitting with sub-captures"
|
||||
#~ msgstr "Memisahkan dengan menggunakan sub-captures"
|
||||
|
||||
#~ msgid "attributes not supported yet"
|
||||
#~ msgstr "atribut belum didukung"
|
||||
|
||||
#~ msgid "keyword argument(s) not yet implemented - use normal args instead"
|
||||
#~ msgstr "argumen keyword belum diimplementasi - gunakan args normal"
|
||||
|
||||
#, fuzzy
|
||||
#~ msgid "offset out of bounds"
|
||||
#~ msgstr "modul tidak ditemukan"
|
||||
|
||||
#~ msgid "ADC2 is being used by WiFi"
|
||||
#~ msgstr "ADC2 sedang digunakan oleh WiFi"
|
||||
|
||||
|
@ -139,7 +139,7 @@ msgstr ""
|
||||
msgid "%q in use"
|
||||
msgstr ""
|
||||
|
||||
#: py/objstr.c py/objstrunicode.c
|
||||
#: py/objstr.c
|
||||
msgid "%q index out of range"
|
||||
msgstr ""
|
||||
|
||||
@ -226,7 +226,7 @@ msgstr ""
|
||||
msgid "%q must be of type %q or %q, not %q"
|
||||
msgstr ""
|
||||
|
||||
#: py/argcheck.c py/objstrunicode.c shared-module/synthio/__init__.c
|
||||
#: py/argcheck.c shared-module/synthio/__init__.c
|
||||
msgid "%q must be of type %q, not %q"
|
||||
msgstr ""
|
||||
|
||||
@ -279,6 +279,11 @@ msgstr ""
|
||||
msgid "%q[%u] waits on input outside of count"
|
||||
msgstr ""
|
||||
|
||||
#: py/runtime.c
|
||||
#, c-format
|
||||
msgid "%s"
|
||||
msgstr ""
|
||||
|
||||
#: ports/espressif/common-hal/espidf/__init__.c
|
||||
#, c-format
|
||||
msgid "%s error 0x%x"
|
||||
@ -628,7 +633,7 @@ msgid "Below minimum frame rate"
|
||||
msgstr ""
|
||||
|
||||
#: ports/raspberrypi/common-hal/audiobusio/I2SOut.c
|
||||
msgid "Bit clock and word select must be sequential pins"
|
||||
msgid "Bit clock and word select must be sequential GPIO pins"
|
||||
msgstr ""
|
||||
|
||||
#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c
|
||||
@ -1100,8 +1105,6 @@ msgstr ""
|
||||
msgid "Generic Failure"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/displayio/Display.c
|
||||
#: shared-bindings/displayio/EPaperDisplay.c
|
||||
#: shared-bindings/framebufferio/FramebufferDisplay.c
|
||||
#: shared-module/displayio/Display.c
|
||||
#: shared-module/framebufferio/FramebufferDisplay.c
|
||||
@ -1956,10 +1959,6 @@ msgstr ""
|
||||
msgid "Specify exactly one of data0 or data_pins"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/modure.c
|
||||
msgid "Splitting with sub-captures"
|
||||
msgstr ""
|
||||
|
||||
#: ports/raspberrypi/common-hal/audiopwmio/PWMAudioOut.c
|
||||
msgid "Stereo left must be on PWM channel A"
|
||||
msgstr ""
|
||||
@ -2396,7 +2395,8 @@ msgid "__init__() should return None"
|
||||
msgstr ""
|
||||
|
||||
#: py/objtype.c
|
||||
msgid "__init__() should return None, not '%q'"
|
||||
#, c-format
|
||||
msgid "__init__() should return None, not '%s'"
|
||||
msgstr ""
|
||||
|
||||
#: py/objobject.c
|
||||
@ -2486,7 +2486,7 @@ msgid "attempt to get argmin/argmax of an empty sequence"
|
||||
msgstr ""
|
||||
|
||||
#: py/objstr.c
|
||||
msgid "attributes not supported yet"
|
||||
msgid "attributes not supported"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/ulab/code/ulab_tools.c
|
||||
@ -2614,7 +2614,7 @@ msgstr ""
|
||||
msgid "can't cancel self"
|
||||
msgstr ""
|
||||
|
||||
#: py/objint.c py/runtime.c shared-module/adafruit_pixelbuf/PixelBuf.c
|
||||
#: py/runtime.c shared-module/adafruit_pixelbuf/PixelBuf.c
|
||||
msgid "can't convert %q to %q"
|
||||
msgstr ""
|
||||
|
||||
@ -2632,10 +2632,18 @@ msgstr ""
|
||||
msgid "can't convert '%q' object to %q implicitly"
|
||||
msgstr ""
|
||||
|
||||
#: py/objint.c
|
||||
msgid "can't convert NaN to int"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/ulab/code/numpy/vector.c
|
||||
msgid "can't convert complex to float"
|
||||
msgstr ""
|
||||
|
||||
#: py/objint.c
|
||||
msgid "can't convert inf to int"
|
||||
msgstr ""
|
||||
|
||||
#: py/obj.c
|
||||
msgid "can't convert to complex"
|
||||
msgstr ""
|
||||
@ -2664,14 +2672,14 @@ msgstr ""
|
||||
msgid "can't do binary op between '%q' and '%q'"
|
||||
msgstr ""
|
||||
|
||||
#: py/objcomplex.c
|
||||
msgid "can't do truncated division of a complex number"
|
||||
msgstr ""
|
||||
|
||||
#: py/emitnative.c
|
||||
msgid "can't implicitly convert '%q' to 'bool'"
|
||||
msgstr ""
|
||||
|
||||
#: py/runtime.c
|
||||
msgid "can't import name %q"
|
||||
msgstr ""
|
||||
|
||||
#: py/emitnative.c
|
||||
msgid "can't load from '%q'"
|
||||
msgstr ""
|
||||
@ -2722,6 +2730,14 @@ msgid ""
|
||||
"can't switch from manual field specification to automatic field numbering"
|
||||
msgstr ""
|
||||
|
||||
#: py/objcomplex.c
|
||||
msgid "can't truncate-divide a complex number"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/moductypes.c
|
||||
msgid "can't unambiguously get sizeof scalar"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/moduasyncio.c
|
||||
msgid "can't wait"
|
||||
msgstr ""
|
||||
@ -2754,18 +2770,10 @@ msgstr ""
|
||||
msgid "cannot delete array elements"
|
||||
msgstr ""
|
||||
|
||||
#: py/runtime.c
|
||||
msgid "cannot import name %q"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/ulab/code/ndarray.c
|
||||
msgid "cannot reshape array"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/moductypes.c
|
||||
msgid "cannot unambiguously get sizeof scalar"
|
||||
msgstr ""
|
||||
|
||||
#: py/emitnative.c
|
||||
msgid "casting"
|
||||
msgstr ""
|
||||
@ -2814,6 +2822,10 @@ msgstr ""
|
||||
msgid "comparison of int and uint"
|
||||
msgstr ""
|
||||
|
||||
#: py/objcomplex.c
|
||||
msgid "complex divide by zero"
|
||||
msgstr ""
|
||||
|
||||
#: py/objfloat.c py/parsenum.c
|
||||
msgid "complex values not supported"
|
||||
msgstr ""
|
||||
@ -3386,7 +3398,7 @@ msgid "join expects a list of str/bytes objects consistent with self object"
|
||||
msgstr ""
|
||||
|
||||
#: py/argcheck.c
|
||||
msgid "keyword argument(s) not yet implemented - use normal args instead"
|
||||
msgid "keyword argument(s) not implemented - use normal args instead"
|
||||
msgstr ""
|
||||
|
||||
#: py/emitinlinethumb.c py/emitinlinextensa.c
|
||||
@ -3397,10 +3409,6 @@ msgstr ""
|
||||
msgid "label redefined"
|
||||
msgstr ""
|
||||
|
||||
#: py/stream.c
|
||||
msgid "length argument not allowed for this type"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/audiomixer/MixerVoice.c
|
||||
msgid "level must be between 0 and 1"
|
||||
msgstr ""
|
||||
@ -3487,6 +3495,10 @@ msgstr ""
|
||||
msgid "memory allocation failed, heap is locked"
|
||||
msgstr ""
|
||||
|
||||
#: py/objarray.c
|
||||
msgid "memoryview offset too large"
|
||||
msgstr ""
|
||||
|
||||
#: py/objarray.c
|
||||
msgid "memoryview: length is not a multiple of itemsize"
|
||||
msgstr ""
|
||||
@ -3535,6 +3547,10 @@ msgstr ""
|
||||
msgid "name not defined"
|
||||
msgstr ""
|
||||
|
||||
#: py/persistentcode.c
|
||||
msgid "native code in .mpy unsupported"
|
||||
msgstr ""
|
||||
|
||||
#: py/asmthumb.c
|
||||
msgid "native method too big"
|
||||
msgstr ""
|
||||
@ -3609,7 +3625,7 @@ msgstr ""
|
||||
msgid "non-default argument follows default argument"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/modubinascii.c
|
||||
#: py/objstr.c
|
||||
msgid "non-hex digit found"
|
||||
msgstr ""
|
||||
|
||||
@ -3699,7 +3715,7 @@ msgstr ""
|
||||
msgid "object with buffer protocol required"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/modubinascii.c
|
||||
#: py/objstr.c
|
||||
msgid "odd-length string"
|
||||
msgstr ""
|
||||
|
||||
@ -3719,10 +3735,6 @@ msgstr ""
|
||||
msgid "offset must be non-negative and no greater than buffer length"
|
||||
msgstr ""
|
||||
|
||||
#: py/objstr.c py/objstrunicode.c
|
||||
msgid "offset out of bounds"
|
||||
msgstr ""
|
||||
|
||||
#: ports/nrf/common-hal/audiobusio/PDMIn.c
|
||||
#: ports/stm/common-hal/audiobusio/PDMIn.c
|
||||
msgid "only bit_depth=16 is supported"
|
||||
@ -3971,10 +3983,6 @@ msgstr ""
|
||||
msgid "sleep length must be non-negative"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/ulab/code/ndarray.c
|
||||
msgid "slice step can't be zero"
|
||||
msgstr ""
|
||||
|
||||
#: py/nativeglue.c
|
||||
msgid "slice unsupported"
|
||||
msgstr ""
|
||||
@ -4019,6 +4027,10 @@ msgstr ""
|
||||
msgid "source_bitmap must have value_count of 8"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/modure.c
|
||||
msgid "splitting with sub-captures"
|
||||
msgstr ""
|
||||
|
||||
#: py/objstr.c
|
||||
msgid "start/end indices"
|
||||
msgstr ""
|
||||
@ -4031,8 +4043,17 @@ msgstr ""
|
||||
msgid "stream operation not supported"
|
||||
msgstr ""
|
||||
|
||||
#: py/stream.c
|
||||
msgid "string not supported; use bytes or bytearray"
|
||||
#: py/objarray.c py/objstr.c
|
||||
msgid "string argument without an encoding"
|
||||
msgstr ""
|
||||
|
||||
#: py/objstrunicode.c
|
||||
msgid "string index out of range"
|
||||
msgstr ""
|
||||
|
||||
#: py/objstrunicode.c
|
||||
#, c-format
|
||||
msgid "string indices must be integers, not %s"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/moductypes.c
|
||||
@ -4063,6 +4084,10 @@ msgstr ""
|
||||
msgid "syntax error in uctypes descriptor"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/utime_mphal.c
|
||||
msgid "ticks interval overflow"
|
||||
msgstr ""
|
||||
|
||||
#: ports/nrf/common-hal/watchdog/WatchDogTimer.c
|
||||
msgid "timeout duration exceeded the maximum supported value"
|
||||
msgstr ""
|
||||
|
835
locale/cs.po
835
locale/cs.po
File diff suppressed because it is too large
Load Diff
172
locale/de_DE.po
172
locale/de_DE.po
@ -148,7 +148,7 @@ msgstr "%q in %q muss von Typ %q sein, nicht %q"
|
||||
msgid "%q in use"
|
||||
msgstr "%q in Benutzung"
|
||||
|
||||
#: py/objstr.c py/objstrunicode.c
|
||||
#: py/objstr.c
|
||||
msgid "%q index out of range"
|
||||
msgstr "Der Index %q befindet sich außerhalb des Bereiches"
|
||||
|
||||
@ -236,7 +236,7 @@ msgstr "%q muss ein Array vom Typ 'h' sein"
|
||||
msgid "%q must be of type %q or %q, not %q"
|
||||
msgstr "%q muss von Typ %q oder %q sein, nicht %q"
|
||||
|
||||
#: py/argcheck.c py/objstrunicode.c shared-module/synthio/__init__.c
|
||||
#: py/argcheck.c shared-module/synthio/__init__.c
|
||||
msgid "%q must be of type %q, not %q"
|
||||
msgstr "%q muss von Typ %q sein, nicht %q"
|
||||
|
||||
@ -290,6 +290,11 @@ msgstr ""
|
||||
msgid "%q[%u] waits on input outside of count"
|
||||
msgstr ""
|
||||
|
||||
#: py/runtime.c
|
||||
#, c-format
|
||||
msgid "%s"
|
||||
msgstr ""
|
||||
|
||||
#: ports/espressif/common-hal/espidf/__init__.c
|
||||
#, c-format
|
||||
msgid "%s error 0x%x"
|
||||
@ -641,8 +646,8 @@ msgid "Below minimum frame rate"
|
||||
msgstr "Unterhalb der minimalen Frame Rate"
|
||||
|
||||
#: ports/raspberrypi/common-hal/audiobusio/I2SOut.c
|
||||
msgid "Bit clock and word select must be sequential pins"
|
||||
msgstr "Bit clock und word select müssen geordnete Pins sein"
|
||||
msgid "Bit clock and word select must be sequential GPIO pins"
|
||||
msgstr ""
|
||||
|
||||
#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c
|
||||
msgid "Bit clock and word select must share a clock unit"
|
||||
@ -1126,8 +1131,6 @@ msgstr "GNSS-Initialisierung"
|
||||
msgid "Generic Failure"
|
||||
msgstr "Generischer Fehler"
|
||||
|
||||
#: shared-bindings/displayio/Display.c
|
||||
#: shared-bindings/displayio/EPaperDisplay.c
|
||||
#: shared-bindings/framebufferio/FramebufferDisplay.c
|
||||
#: shared-module/displayio/Display.c
|
||||
#: shared-module/framebufferio/FramebufferDisplay.c
|
||||
@ -2000,10 +2003,6 @@ msgstr "Quell- und Zielpuffer müssen gleich lang sein"
|
||||
msgid "Specify exactly one of data0 or data_pins"
|
||||
msgstr "Gib genau einen von data0 oder data_pins an"
|
||||
|
||||
#: extmod/modure.c
|
||||
msgid "Splitting with sub-captures"
|
||||
msgstr "Splitting mit sub-captures"
|
||||
|
||||
#: ports/raspberrypi/common-hal/audiopwmio/PWMAudioOut.c
|
||||
msgid "Stereo left must be on PWM channel A"
|
||||
msgstr "Stereo links muss sich auf PWM-Kanal A befinden"
|
||||
@ -2459,8 +2458,9 @@ msgid "__init__() should return None"
|
||||
msgstr "__init__() sollte None zurückgeben"
|
||||
|
||||
#: py/objtype.c
|
||||
msgid "__init__() should return None, not '%q'"
|
||||
msgstr "__init__() sollte None zurückgeben, nicht '%q'"
|
||||
#, c-format
|
||||
msgid "__init__() should return None, not '%s'"
|
||||
msgstr "__init__() sollte None zurückgeben, nicht '%s'"
|
||||
|
||||
#: py/objobject.c
|
||||
msgid "__new__ arg must be a user-type"
|
||||
@ -2549,8 +2549,8 @@ msgid "attempt to get argmin/argmax of an empty sequence"
|
||||
msgstr "Versuch, argmin/argmax einer leeren Sequenz zu ermitteln"
|
||||
|
||||
#: py/objstr.c
|
||||
msgid "attributes not supported yet"
|
||||
msgstr "Attribute werden noch nicht unterstützt"
|
||||
msgid "attributes not supported"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/ulab/code/ulab_tools.c
|
||||
msgid "axis is out of bounds"
|
||||
@ -2679,7 +2679,7 @@ msgstr "kann keinem Ausdruck zuweisen"
|
||||
msgid "can't cancel self"
|
||||
msgstr "kann self nicht abbrechen"
|
||||
|
||||
#: py/objint.c py/runtime.c shared-module/adafruit_pixelbuf/PixelBuf.c
|
||||
#: py/runtime.c shared-module/adafruit_pixelbuf/PixelBuf.c
|
||||
msgid "can't convert %q to %q"
|
||||
msgstr "kann %q nicht zu %q konvertieren"
|
||||
|
||||
@ -2697,10 +2697,18 @@ msgstr "kann %s nicht nach float konvertieren"
|
||||
msgid "can't convert '%q' object to %q implicitly"
|
||||
msgstr "Kann '%q' Objekt nicht implizit nach %q konvertieren"
|
||||
|
||||
#: py/objint.c
|
||||
msgid "can't convert NaN to int"
|
||||
msgstr "kann NaN nicht nach int konvertieren"
|
||||
|
||||
#: extmod/ulab/code/numpy/vector.c
|
||||
msgid "can't convert complex to float"
|
||||
msgstr "Complex kann nicht in Float konvertiert werden"
|
||||
|
||||
#: py/objint.c
|
||||
msgid "can't convert inf to int"
|
||||
msgstr "kann inf nicht nach int konvertieren"
|
||||
|
||||
#: py/obj.c
|
||||
msgid "can't convert to complex"
|
||||
msgstr "kann nicht nach complex konvertieren"
|
||||
@ -2729,14 +2737,14 @@ msgstr "Ausdruck kann nicht gelöscht werden"
|
||||
msgid "can't do binary op between '%q' and '%q'"
|
||||
msgstr "Eine binäre Operation zwischen '%q' und '%q' ist nicht möglich"
|
||||
|
||||
#: py/objcomplex.c
|
||||
msgid "can't do truncated division of a complex number"
|
||||
msgstr "kann mit einer komplexen Zahl keine abgeschnittene Division ausführen"
|
||||
|
||||
#: py/emitnative.c
|
||||
msgid "can't implicitly convert '%q' to 'bool'"
|
||||
msgstr "Kann '%q' nicht implizit nach 'bool' konvertieren"
|
||||
|
||||
#: py/runtime.c
|
||||
msgid "can't import name %q"
|
||||
msgstr ""
|
||||
|
||||
#: py/emitnative.c
|
||||
msgid "can't load from '%q'"
|
||||
msgstr "Laden von '%q' nicht möglich"
|
||||
@ -2793,6 +2801,14 @@ msgstr ""
|
||||
"kann nicht von der manuellen Feldspezifikation zur automatischen "
|
||||
"Feldnummerierung wechseln"
|
||||
|
||||
#: py/objcomplex.c
|
||||
msgid "can't truncate-divide a complex number"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/moductypes.c
|
||||
msgid "can't unambiguously get sizeof scalar"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/moduasyncio.c
|
||||
msgid "can't wait"
|
||||
msgstr ""
|
||||
@ -2825,18 +2841,10 @@ msgstr "Kann Instanz nicht erstellen"
|
||||
msgid "cannot delete array elements"
|
||||
msgstr "Array-Elemente können nicht gelöscht werden"
|
||||
|
||||
#: py/runtime.c
|
||||
msgid "cannot import name %q"
|
||||
msgstr "Name %q kann nicht importiert werden"
|
||||
|
||||
#: extmod/ulab/code/ndarray.c
|
||||
msgid "cannot reshape array"
|
||||
msgstr "Array kann nicht umgeformt werden"
|
||||
|
||||
#: extmod/moductypes.c
|
||||
msgid "cannot unambiguously get sizeof scalar"
|
||||
msgstr "Kann nicht eindeutig die Größe (sizeof) des Skalars ermitteln"
|
||||
|
||||
#: py/emitnative.c
|
||||
msgid "casting"
|
||||
msgstr "Umwandlung (cast)"
|
||||
@ -2887,6 +2895,10 @@ msgstr "Farbe muss zwischen 0x000000 und 0xffffff liegen"
|
||||
msgid "comparison of int and uint"
|
||||
msgstr "Vergleich von int und uint"
|
||||
|
||||
#: py/objcomplex.c
|
||||
msgid "complex divide by zero"
|
||||
msgstr ""
|
||||
|
||||
#: py/objfloat.c py/parsenum.c
|
||||
msgid "complex values not supported"
|
||||
msgstr "Komplexe Zahlen nicht unterstützt"
|
||||
@ -3467,10 +3479,8 @@ msgstr ""
|
||||
"übereinstimmen"
|
||||
|
||||
#: py/argcheck.c
|
||||
msgid "keyword argument(s) not yet implemented - use normal args instead"
|
||||
msgid "keyword argument(s) not implemented - use normal args instead"
|
||||
msgstr ""
|
||||
"Schlüsselwort-Argument(e) noch nicht implementiert - verwende stattdessen "
|
||||
"normale Argumente"
|
||||
|
||||
#: py/emitinlinethumb.c py/emitinlinextensa.c
|
||||
msgid "label '%q' not defined"
|
||||
@ -3480,10 +3490,6 @@ msgstr "Label '%q' nicht definiert"
|
||||
msgid "label redefined"
|
||||
msgstr "Label neu definiert"
|
||||
|
||||
#: py/stream.c
|
||||
msgid "length argument not allowed for this type"
|
||||
msgstr "Für diesen Typ ist length nicht zulässig"
|
||||
|
||||
#: shared-bindings/audiomixer/MixerVoice.c
|
||||
msgid "level must be between 0 and 1"
|
||||
msgstr "Der Pegel muss zwischen 0 und 1 liegen"
|
||||
@ -3572,6 +3578,10 @@ msgstr "Speicherzuordnung fehlgeschlagen, Zuweisung von %u Bytes"
|
||||
msgid "memory allocation failed, heap is locked"
|
||||
msgstr "Speicherzuweisung fehlgeschlagen, der Heap ist gesperrt"
|
||||
|
||||
#: py/objarray.c
|
||||
msgid "memoryview offset too large"
|
||||
msgstr ""
|
||||
|
||||
#: py/objarray.c
|
||||
msgid "memoryview: length is not a multiple of itemsize"
|
||||
msgstr "memoryview: length ist kein Vielfaches von itemize"
|
||||
@ -3620,6 +3630,10 @@ msgstr "Name '%q' ist nirgends definiert worden (Schreibweise kontrollieren)"
|
||||
msgid "name not defined"
|
||||
msgstr "Dieser Name ist nirgends definiert worden (Schreibweise kontrollieren)"
|
||||
|
||||
#: py/persistentcode.c
|
||||
msgid "native code in .mpy unsupported"
|
||||
msgstr ""
|
||||
|
||||
#: py/asmthumb.c
|
||||
msgid "native method too big"
|
||||
msgstr "native Methode zu groß"
|
||||
@ -3694,7 +3708,7 @@ msgstr "Nicht-UUID in service_uuids_whitelist gefunden"
|
||||
msgid "non-default argument follows default argument"
|
||||
msgstr "ein non-default argument folgt auf ein default argument"
|
||||
|
||||
#: extmod/modubinascii.c
|
||||
#: py/objstr.c
|
||||
msgid "non-hex digit found"
|
||||
msgstr "eine nicht-hex zahl wurde gefunden"
|
||||
|
||||
@ -3786,7 +3800,7 @@ msgstr "Objekt vom Typ '%s' hat keine len()"
|
||||
msgid "object with buffer protocol required"
|
||||
msgstr "Objekt mit Pufferprotokoll (buffer protocol) erforderlich"
|
||||
|
||||
#: extmod/modubinascii.c
|
||||
#: py/objstr.c
|
||||
msgid "odd-length string"
|
||||
msgstr "String mit ungerader Länge"
|
||||
|
||||
@ -3807,10 +3821,6 @@ msgid "offset must be non-negative and no greater than buffer length"
|
||||
msgstr ""
|
||||
"Offset muss nicht negativ sein und darf nicht größer als die Pufferlänge sein"
|
||||
|
||||
#: py/objstr.c py/objstrunicode.c
|
||||
msgid "offset out of bounds"
|
||||
msgstr "offset außerhalb der Grenzen"
|
||||
|
||||
#: ports/nrf/common-hal/audiobusio/PDMIn.c
|
||||
#: ports/stm/common-hal/audiobusio/PDMIn.c
|
||||
msgid "only bit_depth=16 is supported"
|
||||
@ -4062,10 +4072,6 @@ msgstr "Größe ist nur für ndarrays definiert"
|
||||
msgid "sleep length must be non-negative"
|
||||
msgstr "Die Schlafdauer darf nicht negativ sein"
|
||||
|
||||
#: extmod/ulab/code/ndarray.c
|
||||
msgid "slice step can't be zero"
|
||||
msgstr "Slice-Schritt darf nicht Null sein"
|
||||
|
||||
#: py/nativeglue.c
|
||||
msgid "slice unsupported"
|
||||
msgstr "Slice nicht unterstützt"
|
||||
@ -4110,6 +4116,10 @@ msgstr "source_bitmap muss value_count von 65536 haben"
|
||||
msgid "source_bitmap must have value_count of 8"
|
||||
msgstr "source_bitmap muss value_count von 8 haben"
|
||||
|
||||
#: extmod/modure.c
|
||||
msgid "splitting with sub-captures"
|
||||
msgstr ""
|
||||
|
||||
#: py/objstr.c
|
||||
msgid "start/end indices"
|
||||
msgstr "start/end Indizes"
|
||||
@ -4122,9 +4132,18 @@ msgstr "stop ist von start aus nicht erreichbar"
|
||||
msgid "stream operation not supported"
|
||||
msgstr "stream operation ist nicht unterstützt"
|
||||
|
||||
#: py/stream.c
|
||||
msgid "string not supported; use bytes or bytearray"
|
||||
msgstr "Zeichenfolgen werden nicht unterstützt; verwende bytes oder bytearray"
|
||||
#: py/objarray.c py/objstr.c
|
||||
msgid "string argument without an encoding"
|
||||
msgstr ""
|
||||
|
||||
#: py/objstrunicode.c
|
||||
msgid "string index out of range"
|
||||
msgstr "String index außerhalb des Bereiches"
|
||||
|
||||
#: py/objstrunicode.c
|
||||
#, c-format
|
||||
msgid "string indices must be integers, not %s"
|
||||
msgstr "String indizes müssen Integer sein, nicht %s"
|
||||
|
||||
#: extmod/moductypes.c
|
||||
msgid "struct: can't index"
|
||||
@ -4154,6 +4173,10 @@ msgstr "Syntaxfehler in JSON"
|
||||
msgid "syntax error in uctypes descriptor"
|
||||
msgstr "Syntaxfehler in uctypes Deskriptor"
|
||||
|
||||
#: extmod/utime_mphal.c
|
||||
msgid "ticks interval overflow"
|
||||
msgstr ""
|
||||
|
||||
#: ports/nrf/common-hal/watchdog/WatchDogTimer.c
|
||||
msgid "timeout duration exceeded the maximum supported value"
|
||||
msgstr "Das Zeitlimit hat den maximal zulässigen Wert überschritten"
|
||||
@ -4429,6 +4452,46 @@ msgstr "zi muss eine Gleitkommazahl sein"
|
||||
msgid "zi must be of shape (n_section, 2)"
|
||||
msgstr "zi muss die Form (n_section, 2) haben"
|
||||
|
||||
#~ msgid "Splitting with sub-captures"
|
||||
#~ msgstr "Splitting mit sub-captures"
|
||||
|
||||
#~ msgid "__init__() should return None, not '%q'"
|
||||
#~ msgstr "__init__() sollte None zurückgeben, nicht '%q'"
|
||||
|
||||
#~ msgid "attributes not supported yet"
|
||||
#~ msgstr "Attribute werden noch nicht unterstützt"
|
||||
|
||||
#~ msgid "can't do truncated division of a complex number"
|
||||
#~ msgstr ""
|
||||
#~ "kann mit einer komplexen Zahl keine abgeschnittene Division ausführen"
|
||||
|
||||
#~ msgid "cannot import name %q"
|
||||
#~ msgstr "Name %q kann nicht importiert werden"
|
||||
|
||||
#~ msgid "cannot unambiguously get sizeof scalar"
|
||||
#~ msgstr "Kann nicht eindeutig die Größe (sizeof) des Skalars ermitteln"
|
||||
|
||||
#~ msgid "keyword argument(s) not yet implemented - use normal args instead"
|
||||
#~ msgstr ""
|
||||
#~ "Schlüsselwort-Argument(e) noch nicht implementiert - verwende stattdessen "
|
||||
#~ "normale Argumente"
|
||||
|
||||
#~ msgid "length argument not allowed for this type"
|
||||
#~ msgstr "Für diesen Typ ist length nicht zulässig"
|
||||
|
||||
#~ msgid "offset out of bounds"
|
||||
#~ msgstr "offset außerhalb der Grenzen"
|
||||
|
||||
#~ msgid "slice step can't be zero"
|
||||
#~ msgstr "Slice-Schritt darf nicht Null sein"
|
||||
|
||||
#~ msgid "string not supported; use bytes or bytearray"
|
||||
#~ msgstr ""
|
||||
#~ "Zeichenfolgen werden nicht unterstützt; verwende bytes oder bytearray"
|
||||
|
||||
#~ msgid "Bit clock and word select must be sequential pins"
|
||||
#~ msgstr "Bit clock und word select müssen geordnete Pins sein"
|
||||
|
||||
#~ msgid "Initialization failed due to lack of memory"
|
||||
#~ msgstr "Initialisierung aufgrund von Speichermangel fehlgeschlagen"
|
||||
|
||||
@ -5804,21 +5867,12 @@ msgstr "zi muss die Form (n_section, 2) haben"
|
||||
#~ msgid "Running in safe mode! Auto-reload is off.\n"
|
||||
#~ msgstr "Sicherheitsmodus aktiv! Automatisches Neuladen ist deaktiviert.\n"
|
||||
|
||||
#~ msgid "__init__() should return None, not '%s'"
|
||||
#~ msgstr "__init__() sollte None zurückgeben, nicht '%s'"
|
||||
|
||||
#~ msgid "can't convert %s to int"
|
||||
#~ msgstr "kann %s nicht nach int konvertieren"
|
||||
|
||||
#~ msgid "can't convert NaN to int"
|
||||
#~ msgstr "kann NaN nicht nach int konvertieren"
|
||||
|
||||
#~ msgid "can't convert address to int"
|
||||
#~ msgstr "kann Adresse nicht in int konvertieren"
|
||||
|
||||
#~ msgid "can't convert inf to int"
|
||||
#~ msgstr "kann inf nicht nach int konvertieren"
|
||||
|
||||
#~ msgid "object '%s' is not a tuple or list"
|
||||
#~ msgstr "Objekt '%s' ist weder tupel noch list"
|
||||
|
||||
@ -5831,12 +5885,6 @@ msgstr "zi muss die Form (n_section, 2) haben"
|
||||
#~ msgid "popitem(): dictionary is empty"
|
||||
#~ msgstr "popitem(): dictionary ist leer"
|
||||
|
||||
#~ msgid "string index out of range"
|
||||
#~ msgstr "String index außerhalb des Bereiches"
|
||||
|
||||
#~ msgid "string indices must be integers, not %s"
|
||||
#~ msgstr "String indizes müssen Integer sein, nicht %s"
|
||||
|
||||
#~ msgid "unknown format code '%c' for object of type '%s'"
|
||||
#~ msgstr "unbekannter Formatcode '%c' für Objekt vom Typ '%s'"
|
||||
|
||||
|
112
locale/el.po
112
locale/el.po
@ -151,7 +151,7 @@ msgstr "%q στο %q πρέπει να είναι τύπου %q, όχι %q"
|
||||
msgid "%q in use"
|
||||
msgstr "%q είναι σε χρήση"
|
||||
|
||||
#: py/objstr.c py/objstrunicode.c
|
||||
#: py/objstr.c
|
||||
msgid "%q index out of range"
|
||||
msgstr "%q δείκτης εκτός εμβέλειας"
|
||||
|
||||
@ -238,7 +238,7 @@ msgstr "%q πρέπει να είναι λίστα τύπου 'h'"
|
||||
msgid "%q must be of type %q or %q, not %q"
|
||||
msgstr "%q πρέπει να είναι τύπου %q ή %q, όχι %q"
|
||||
|
||||
#: py/argcheck.c py/objstrunicode.c shared-module/synthio/__init__.c
|
||||
#: py/argcheck.c shared-module/synthio/__init__.c
|
||||
msgid "%q must be of type %q, not %q"
|
||||
msgstr ""
|
||||
|
||||
@ -291,6 +291,11 @@ msgstr ""
|
||||
msgid "%q[%u] waits on input outside of count"
|
||||
msgstr ""
|
||||
|
||||
#: py/runtime.c
|
||||
#, c-format
|
||||
msgid "%s"
|
||||
msgstr ""
|
||||
|
||||
#: ports/espressif/common-hal/espidf/__init__.c
|
||||
#, c-format
|
||||
msgid "%s error 0x%x"
|
||||
@ -642,8 +647,8 @@ msgid "Below minimum frame rate"
|
||||
msgstr "Χαμηλότερο από το ελάχιστο frame rate"
|
||||
|
||||
#: ports/raspberrypi/common-hal/audiobusio/I2SOut.c
|
||||
msgid "Bit clock and word select must be sequential pins"
|
||||
msgstr "Ρολόι bit και word select πρέπει να είναι διαδοχικά pins"
|
||||
msgid "Bit clock and word select must be sequential GPIO pins"
|
||||
msgstr ""
|
||||
|
||||
#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c
|
||||
msgid "Bit clock and word select must share a clock unit"
|
||||
@ -1124,8 +1129,6 @@ msgstr ""
|
||||
msgid "Generic Failure"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/displayio/Display.c
|
||||
#: shared-bindings/displayio/EPaperDisplay.c
|
||||
#: shared-bindings/framebufferio/FramebufferDisplay.c
|
||||
#: shared-module/displayio/Display.c
|
||||
#: shared-module/framebufferio/FramebufferDisplay.c
|
||||
@ -1982,10 +1985,6 @@ msgstr ""
|
||||
msgid "Specify exactly one of data0 or data_pins"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/modure.c
|
||||
msgid "Splitting with sub-captures"
|
||||
msgstr ""
|
||||
|
||||
#: ports/raspberrypi/common-hal/audiopwmio/PWMAudioOut.c
|
||||
msgid "Stereo left must be on PWM channel A"
|
||||
msgstr ""
|
||||
@ -2422,7 +2421,8 @@ msgid "__init__() should return None"
|
||||
msgstr ""
|
||||
|
||||
#: py/objtype.c
|
||||
msgid "__init__() should return None, not '%q'"
|
||||
#, c-format
|
||||
msgid "__init__() should return None, not '%s'"
|
||||
msgstr ""
|
||||
|
||||
#: py/objobject.c
|
||||
@ -2512,7 +2512,7 @@ msgid "attempt to get argmin/argmax of an empty sequence"
|
||||
msgstr ""
|
||||
|
||||
#: py/objstr.c
|
||||
msgid "attributes not supported yet"
|
||||
msgid "attributes not supported"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/ulab/code/ulab_tools.c
|
||||
@ -2640,7 +2640,7 @@ msgstr ""
|
||||
msgid "can't cancel self"
|
||||
msgstr ""
|
||||
|
||||
#: py/objint.c py/runtime.c shared-module/adafruit_pixelbuf/PixelBuf.c
|
||||
#: py/runtime.c shared-module/adafruit_pixelbuf/PixelBuf.c
|
||||
msgid "can't convert %q to %q"
|
||||
msgstr ""
|
||||
|
||||
@ -2658,10 +2658,18 @@ msgstr ""
|
||||
msgid "can't convert '%q' object to %q implicitly"
|
||||
msgstr ""
|
||||
|
||||
#: py/objint.c
|
||||
msgid "can't convert NaN to int"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/ulab/code/numpy/vector.c
|
||||
msgid "can't convert complex to float"
|
||||
msgstr ""
|
||||
|
||||
#: py/objint.c
|
||||
msgid "can't convert inf to int"
|
||||
msgstr ""
|
||||
|
||||
#: py/obj.c
|
||||
msgid "can't convert to complex"
|
||||
msgstr ""
|
||||
@ -2690,14 +2698,14 @@ msgstr ""
|
||||
msgid "can't do binary op between '%q' and '%q'"
|
||||
msgstr ""
|
||||
|
||||
#: py/objcomplex.c
|
||||
msgid "can't do truncated division of a complex number"
|
||||
msgstr ""
|
||||
|
||||
#: py/emitnative.c
|
||||
msgid "can't implicitly convert '%q' to 'bool'"
|
||||
msgstr ""
|
||||
|
||||
#: py/runtime.c
|
||||
msgid "can't import name %q"
|
||||
msgstr ""
|
||||
|
||||
#: py/emitnative.c
|
||||
msgid "can't load from '%q'"
|
||||
msgstr ""
|
||||
@ -2748,6 +2756,14 @@ msgid ""
|
||||
"can't switch from manual field specification to automatic field numbering"
|
||||
msgstr ""
|
||||
|
||||
#: py/objcomplex.c
|
||||
msgid "can't truncate-divide a complex number"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/moductypes.c
|
||||
msgid "can't unambiguously get sizeof scalar"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/moduasyncio.c
|
||||
msgid "can't wait"
|
||||
msgstr ""
|
||||
@ -2780,18 +2796,10 @@ msgstr ""
|
||||
msgid "cannot delete array elements"
|
||||
msgstr ""
|
||||
|
||||
#: py/runtime.c
|
||||
msgid "cannot import name %q"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/ulab/code/ndarray.c
|
||||
msgid "cannot reshape array"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/moductypes.c
|
||||
msgid "cannot unambiguously get sizeof scalar"
|
||||
msgstr ""
|
||||
|
||||
#: py/emitnative.c
|
||||
msgid "casting"
|
||||
msgstr ""
|
||||
@ -2840,6 +2848,10 @@ msgstr ""
|
||||
msgid "comparison of int and uint"
|
||||
msgstr ""
|
||||
|
||||
#: py/objcomplex.c
|
||||
msgid "complex divide by zero"
|
||||
msgstr ""
|
||||
|
||||
#: py/objfloat.c py/parsenum.c
|
||||
msgid "complex values not supported"
|
||||
msgstr ""
|
||||
@ -3412,7 +3424,7 @@ msgid "join expects a list of str/bytes objects consistent with self object"
|
||||
msgstr ""
|
||||
|
||||
#: py/argcheck.c
|
||||
msgid "keyword argument(s) not yet implemented - use normal args instead"
|
||||
msgid "keyword argument(s) not implemented - use normal args instead"
|
||||
msgstr ""
|
||||
|
||||
#: py/emitinlinethumb.c py/emitinlinextensa.c
|
||||
@ -3423,10 +3435,6 @@ msgstr ""
|
||||
msgid "label redefined"
|
||||
msgstr ""
|
||||
|
||||
#: py/stream.c
|
||||
msgid "length argument not allowed for this type"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/audiomixer/MixerVoice.c
|
||||
msgid "level must be between 0 and 1"
|
||||
msgstr ""
|
||||
@ -3513,6 +3521,10 @@ msgstr ""
|
||||
msgid "memory allocation failed, heap is locked"
|
||||
msgstr ""
|
||||
|
||||
#: py/objarray.c
|
||||
msgid "memoryview offset too large"
|
||||
msgstr ""
|
||||
|
||||
#: py/objarray.c
|
||||
msgid "memoryview: length is not a multiple of itemsize"
|
||||
msgstr ""
|
||||
@ -3561,6 +3573,10 @@ msgstr ""
|
||||
msgid "name not defined"
|
||||
msgstr ""
|
||||
|
||||
#: py/persistentcode.c
|
||||
msgid "native code in .mpy unsupported"
|
||||
msgstr ""
|
||||
|
||||
#: py/asmthumb.c
|
||||
msgid "native method too big"
|
||||
msgstr ""
|
||||
@ -3635,7 +3651,7 @@ msgstr ""
|
||||
msgid "non-default argument follows default argument"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/modubinascii.c
|
||||
#: py/objstr.c
|
||||
msgid "non-hex digit found"
|
||||
msgstr ""
|
||||
|
||||
@ -3725,7 +3741,7 @@ msgstr ""
|
||||
msgid "object with buffer protocol required"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/modubinascii.c
|
||||
#: py/objstr.c
|
||||
msgid "odd-length string"
|
||||
msgstr ""
|
||||
|
||||
@ -3745,10 +3761,6 @@ msgstr ""
|
||||
msgid "offset must be non-negative and no greater than buffer length"
|
||||
msgstr ""
|
||||
|
||||
#: py/objstr.c py/objstrunicode.c
|
||||
msgid "offset out of bounds"
|
||||
msgstr ""
|
||||
|
||||
#: ports/nrf/common-hal/audiobusio/PDMIn.c
|
||||
#: ports/stm/common-hal/audiobusio/PDMIn.c
|
||||
msgid "only bit_depth=16 is supported"
|
||||
@ -3997,10 +4009,6 @@ msgstr ""
|
||||
msgid "sleep length must be non-negative"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/ulab/code/ndarray.c
|
||||
msgid "slice step can't be zero"
|
||||
msgstr ""
|
||||
|
||||
#: py/nativeglue.c
|
||||
msgid "slice unsupported"
|
||||
msgstr ""
|
||||
@ -4045,6 +4053,10 @@ msgstr ""
|
||||
msgid "source_bitmap must have value_count of 8"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/modure.c
|
||||
msgid "splitting with sub-captures"
|
||||
msgstr ""
|
||||
|
||||
#: py/objstr.c
|
||||
msgid "start/end indices"
|
||||
msgstr ""
|
||||
@ -4057,8 +4069,17 @@ msgstr ""
|
||||
msgid "stream operation not supported"
|
||||
msgstr ""
|
||||
|
||||
#: py/stream.c
|
||||
msgid "string not supported; use bytes or bytearray"
|
||||
#: py/objarray.c py/objstr.c
|
||||
msgid "string argument without an encoding"
|
||||
msgstr ""
|
||||
|
||||
#: py/objstrunicode.c
|
||||
msgid "string index out of range"
|
||||
msgstr ""
|
||||
|
||||
#: py/objstrunicode.c
|
||||
#, c-format
|
||||
msgid "string indices must be integers, not %s"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/moductypes.c
|
||||
@ -4089,6 +4110,10 @@ msgstr ""
|
||||
msgid "syntax error in uctypes descriptor"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/utime_mphal.c
|
||||
msgid "ticks interval overflow"
|
||||
msgstr ""
|
||||
|
||||
#: ports/nrf/common-hal/watchdog/WatchDogTimer.c
|
||||
msgid "timeout duration exceeded the maximum supported value"
|
||||
msgstr ""
|
||||
@ -4362,6 +4387,9 @@ msgstr ""
|
||||
msgid "zi must be of shape (n_section, 2)"
|
||||
msgstr ""
|
||||
|
||||
#~ msgid "Bit clock and word select must be sequential pins"
|
||||
#~ msgstr "Ρολόι bit και word select πρέπει να είναι διαδοχικά pins"
|
||||
|
||||
#~ msgid "ADC2 is being used by WiFi"
|
||||
#~ msgstr "Το ADC2 χρησιμοποιείται απο το WIFI"
|
||||
|
||||
|
153
locale/en_GB.po
153
locale/en_GB.po
@ -152,7 +152,7 @@ msgstr "%q in %q must be of type %q, not %q"
|
||||
msgid "%q in use"
|
||||
msgstr "%q in use"
|
||||
|
||||
#: py/objstr.c py/objstrunicode.c
|
||||
#: py/objstr.c
|
||||
msgid "%q index out of range"
|
||||
msgstr "%q index out of range"
|
||||
|
||||
@ -239,7 +239,7 @@ msgstr "%q must be array of type 'h'"
|
||||
msgid "%q must be of type %q or %q, not %q"
|
||||
msgstr "%q must be of type %q or %q, not %q"
|
||||
|
||||
#: py/argcheck.c py/objstrunicode.c shared-module/synthio/__init__.c
|
||||
#: py/argcheck.c shared-module/synthio/__init__.c
|
||||
msgid "%q must be of type %q, not %q"
|
||||
msgstr "%q must be of type %q, not %q"
|
||||
|
||||
@ -292,6 +292,11 @@ msgstr "%q[%u] uses extra pin"
|
||||
msgid "%q[%u] waits on input outside of count"
|
||||
msgstr "%q[%u] waits on input outside of count"
|
||||
|
||||
#: py/runtime.c
|
||||
#, c-format
|
||||
msgid "%s"
|
||||
msgstr ""
|
||||
|
||||
#: ports/espressif/common-hal/espidf/__init__.c
|
||||
#, c-format
|
||||
msgid "%s error 0x%x"
|
||||
@ -643,8 +648,8 @@ msgid "Below minimum frame rate"
|
||||
msgstr "Below minimum frame rate"
|
||||
|
||||
#: ports/raspberrypi/common-hal/audiobusio/I2SOut.c
|
||||
msgid "Bit clock and word select must be sequential pins"
|
||||
msgstr "Bit clock and word select must be sequential pins"
|
||||
msgid "Bit clock and word select must be sequential GPIO pins"
|
||||
msgstr ""
|
||||
|
||||
#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c
|
||||
msgid "Bit clock and word select must share a clock unit"
|
||||
@ -1118,8 +1123,6 @@ msgstr "GNSS init"
|
||||
msgid "Generic Failure"
|
||||
msgstr "Generic Failure"
|
||||
|
||||
#: shared-bindings/displayio/Display.c
|
||||
#: shared-bindings/displayio/EPaperDisplay.c
|
||||
#: shared-bindings/framebufferio/FramebufferDisplay.c
|
||||
#: shared-module/displayio/Display.c
|
||||
#: shared-module/framebufferio/FramebufferDisplay.c
|
||||
@ -1983,10 +1986,6 @@ msgstr "Source and destination buffers must be the same length"
|
||||
msgid "Specify exactly one of data0 or data_pins"
|
||||
msgstr "Specify exactly one of data0 or data_pins"
|
||||
|
||||
#: extmod/modure.c
|
||||
msgid "Splitting with sub-captures"
|
||||
msgstr "Splitting with sub-captures"
|
||||
|
||||
#: ports/raspberrypi/common-hal/audiopwmio/PWMAudioOut.c
|
||||
msgid "Stereo left must be on PWM channel A"
|
||||
msgstr "Stereo left must be on PWM channel A"
|
||||
@ -2432,8 +2431,9 @@ msgid "__init__() should return None"
|
||||
msgstr "__init__() should return None"
|
||||
|
||||
#: py/objtype.c
|
||||
msgid "__init__() should return None, not '%q'"
|
||||
msgstr "__init__() should return None, not '%q'"
|
||||
#, c-format
|
||||
msgid "__init__() should return None, not '%s'"
|
||||
msgstr ""
|
||||
|
||||
#: py/objobject.c
|
||||
msgid "__new__ arg must be a user-type"
|
||||
@ -2522,8 +2522,8 @@ msgid "attempt to get argmin/argmax of an empty sequence"
|
||||
msgstr "attempt to get argmin/argmax of an empty sequence"
|
||||
|
||||
#: py/objstr.c
|
||||
msgid "attributes not supported yet"
|
||||
msgstr "attributes not supported yet"
|
||||
msgid "attributes not supported"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/ulab/code/ulab_tools.c
|
||||
msgid "axis is out of bounds"
|
||||
@ -2650,7 +2650,7 @@ msgstr "Can't assign to expression"
|
||||
msgid "can't cancel self"
|
||||
msgstr "can't cancel self"
|
||||
|
||||
#: py/objint.c py/runtime.c shared-module/adafruit_pixelbuf/PixelBuf.c
|
||||
#: py/runtime.c shared-module/adafruit_pixelbuf/PixelBuf.c
|
||||
msgid "can't convert %q to %q"
|
||||
msgstr "Can't convert %q to %q"
|
||||
|
||||
@ -2668,10 +2668,18 @@ msgstr "can't convert %s to float"
|
||||
msgid "can't convert '%q' object to %q implicitly"
|
||||
msgstr "Can't convert '%q' object to %q implicitly"
|
||||
|
||||
#: py/objint.c
|
||||
msgid "can't convert NaN to int"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/ulab/code/numpy/vector.c
|
||||
msgid "can't convert complex to float"
|
||||
msgstr "can't convert complex to float"
|
||||
|
||||
#: py/objint.c
|
||||
msgid "can't convert inf to int"
|
||||
msgstr ""
|
||||
|
||||
#: py/obj.c
|
||||
msgid "can't convert to complex"
|
||||
msgstr "can't convert to complex"
|
||||
@ -2700,14 +2708,14 @@ msgstr "Can't delete expression"
|
||||
msgid "can't do binary op between '%q' and '%q'"
|
||||
msgstr "Can't do binary op between '%q' and '%q'"
|
||||
|
||||
#: py/objcomplex.c
|
||||
msgid "can't do truncated division of a complex number"
|
||||
msgstr "Can't do truncated division of a complex number"
|
||||
|
||||
#: py/emitnative.c
|
||||
msgid "can't implicitly convert '%q' to 'bool'"
|
||||
msgstr "can't implicitly convert '%q' to 'bool'"
|
||||
|
||||
#: py/runtime.c
|
||||
msgid "can't import name %q"
|
||||
msgstr ""
|
||||
|
||||
#: py/emitnative.c
|
||||
msgid "can't load from '%q'"
|
||||
msgstr "can't load from '%q'"
|
||||
@ -2760,6 +2768,14 @@ msgid ""
|
||||
msgstr ""
|
||||
"can't switch from manual field specification to automatic field numbering"
|
||||
|
||||
#: py/objcomplex.c
|
||||
msgid "can't truncate-divide a complex number"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/moductypes.c
|
||||
msgid "can't unambiguously get sizeof scalar"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/moduasyncio.c
|
||||
msgid "can't wait"
|
||||
msgstr "can't wait"
|
||||
@ -2792,18 +2808,10 @@ msgstr "can't create instance"
|
||||
msgid "cannot delete array elements"
|
||||
msgstr "cannot delete array elements"
|
||||
|
||||
#: py/runtime.c
|
||||
msgid "cannot import name %q"
|
||||
msgstr "can't import name %q"
|
||||
|
||||
#: extmod/ulab/code/ndarray.c
|
||||
msgid "cannot reshape array"
|
||||
msgstr "cannot reshape array"
|
||||
|
||||
#: extmod/moductypes.c
|
||||
msgid "cannot unambiguously get sizeof scalar"
|
||||
msgstr "cannot unambiguously get sizeof scalar"
|
||||
|
||||
#: py/emitnative.c
|
||||
msgid "casting"
|
||||
msgstr "casting"
|
||||
@ -2852,6 +2860,10 @@ msgstr "colour must be between 0x000000 and 0xffffff"
|
||||
msgid "comparison of int and uint"
|
||||
msgstr "comparison of int and uint"
|
||||
|
||||
#: py/objcomplex.c
|
||||
msgid "complex divide by zero"
|
||||
msgstr ""
|
||||
|
||||
#: py/objfloat.c py/parsenum.c
|
||||
msgid "complex values not supported"
|
||||
msgstr "complex values not supported"
|
||||
@ -3427,8 +3439,8 @@ msgid "join expects a list of str/bytes objects consistent with self object"
|
||||
msgstr "join expects a list of str/bytes objects consistent with self object"
|
||||
|
||||
#: py/argcheck.c
|
||||
msgid "keyword argument(s) not yet implemented - use normal args instead"
|
||||
msgstr "keyword argument(s) not yet implemented - use normal args instead"
|
||||
msgid "keyword argument(s) not implemented - use normal args instead"
|
||||
msgstr ""
|
||||
|
||||
#: py/emitinlinethumb.c py/emitinlinextensa.c
|
||||
msgid "label '%q' not defined"
|
||||
@ -3438,10 +3450,6 @@ msgstr "label '%q' not defined"
|
||||
msgid "label redefined"
|
||||
msgstr "label redefined"
|
||||
|
||||
#: py/stream.c
|
||||
msgid "length argument not allowed for this type"
|
||||
msgstr "length argument not allowed for this type"
|
||||
|
||||
#: shared-bindings/audiomixer/MixerVoice.c
|
||||
msgid "level must be between 0 and 1"
|
||||
msgstr "level must be between 0 and 1"
|
||||
@ -3528,6 +3536,10 @@ msgstr "memory allocation failed, allocating %u bytes"
|
||||
msgid "memory allocation failed, heap is locked"
|
||||
msgstr "memory allocation failed, heap is locked"
|
||||
|
||||
#: py/objarray.c
|
||||
msgid "memoryview offset too large"
|
||||
msgstr ""
|
||||
|
||||
#: py/objarray.c
|
||||
msgid "memoryview: length is not a multiple of itemsize"
|
||||
msgstr "memoryview: length is not a multiple of itemsize"
|
||||
@ -3576,6 +3588,10 @@ msgstr "name '%q' is not defined"
|
||||
msgid "name not defined"
|
||||
msgstr "name not defined"
|
||||
|
||||
#: py/persistentcode.c
|
||||
msgid "native code in .mpy unsupported"
|
||||
msgstr ""
|
||||
|
||||
#: py/asmthumb.c
|
||||
msgid "native method too big"
|
||||
msgstr "native method too big"
|
||||
@ -3650,7 +3666,7 @@ msgstr "non-UUID found in service_uuids_whitelist"
|
||||
msgid "non-default argument follows default argument"
|
||||
msgstr "non-default argument follows default argument"
|
||||
|
||||
#: extmod/modubinascii.c
|
||||
#: py/objstr.c
|
||||
msgid "non-hex digit found"
|
||||
msgstr "non-hex digit found"
|
||||
|
||||
@ -3740,7 +3756,7 @@ msgstr "object of type '%s' has no len()"
|
||||
msgid "object with buffer protocol required"
|
||||
msgstr "object with buffer protocol required"
|
||||
|
||||
#: extmod/modubinascii.c
|
||||
#: py/objstr.c
|
||||
msgid "odd-length string"
|
||||
msgstr "odd-length string"
|
||||
|
||||
@ -3760,10 +3776,6 @@ msgstr "offset must be >= 0"
|
||||
msgid "offset must be non-negative and no greater than buffer length"
|
||||
msgstr "offset must be non-negative and not greater than buffer length"
|
||||
|
||||
#: py/objstr.c py/objstrunicode.c
|
||||
msgid "offset out of bounds"
|
||||
msgstr "offset out of bounds"
|
||||
|
||||
#: ports/nrf/common-hal/audiobusio/PDMIn.c
|
||||
#: ports/stm/common-hal/audiobusio/PDMIn.c
|
||||
msgid "only bit_depth=16 is supported"
|
||||
@ -4012,10 +4024,6 @@ msgstr "size is defined for ndarrays only"
|
||||
msgid "sleep length must be non-negative"
|
||||
msgstr "sleep length must be non-negative"
|
||||
|
||||
#: extmod/ulab/code/ndarray.c
|
||||
msgid "slice step can't be zero"
|
||||
msgstr "slice step can't be zero"
|
||||
|
||||
#: py/nativeglue.c
|
||||
msgid "slice unsupported"
|
||||
msgstr "slice unsupported"
|
||||
@ -4060,6 +4068,10 @@ msgstr "source_bitmap must have value_count of 65536"
|
||||
msgid "source_bitmap must have value_count of 8"
|
||||
msgstr "source_bitmap must have value_count of 8"
|
||||
|
||||
#: extmod/modure.c
|
||||
msgid "splitting with sub-captures"
|
||||
msgstr ""
|
||||
|
||||
#: py/objstr.c
|
||||
msgid "start/end indices"
|
||||
msgstr "start/end indices"
|
||||
@ -4072,9 +4084,18 @@ msgstr "stop not reachable from start"
|
||||
msgid "stream operation not supported"
|
||||
msgstr "stream operation not supported"
|
||||
|
||||
#: py/stream.c
|
||||
msgid "string not supported; use bytes or bytearray"
|
||||
msgstr "string not supported; use bytes or bytearray"
|
||||
#: py/objarray.c py/objstr.c
|
||||
msgid "string argument without an encoding"
|
||||
msgstr ""
|
||||
|
||||
#: py/objstrunicode.c
|
||||
msgid "string index out of range"
|
||||
msgstr ""
|
||||
|
||||
#: py/objstrunicode.c
|
||||
#, c-format
|
||||
msgid "string indices must be integers, not %s"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/moductypes.c
|
||||
msgid "struct: can't index"
|
||||
@ -4104,6 +4125,10 @@ msgstr "syntax error in JSON"
|
||||
msgid "syntax error in uctypes descriptor"
|
||||
msgstr "syntax error in uctypes descriptor"
|
||||
|
||||
#: extmod/utime_mphal.c
|
||||
msgid "ticks interval overflow"
|
||||
msgstr ""
|
||||
|
||||
#: ports/nrf/common-hal/watchdog/WatchDogTimer.c
|
||||
msgid "timeout duration exceeded the maximum supported value"
|
||||
msgstr "timeout duration exceeded the maximum supported value"
|
||||
@ -4377,6 +4402,42 @@ msgstr "zi must be of float type"
|
||||
msgid "zi must be of shape (n_section, 2)"
|
||||
msgstr "zi must be of shape (n_section, 2)"
|
||||
|
||||
#~ msgid "Splitting with sub-captures"
|
||||
#~ msgstr "Splitting with sub-captures"
|
||||
|
||||
#~ msgid "__init__() should return None, not '%q'"
|
||||
#~ msgstr "__init__() should return None, not '%q'"
|
||||
|
||||
#~ msgid "attributes not supported yet"
|
||||
#~ msgstr "attributes not supported yet"
|
||||
|
||||
#~ msgid "can't do truncated division of a complex number"
|
||||
#~ msgstr "Can't do truncated division of a complex number"
|
||||
|
||||
#~ msgid "cannot import name %q"
|
||||
#~ msgstr "can't import name %q"
|
||||
|
||||
#~ msgid "cannot unambiguously get sizeof scalar"
|
||||
#~ msgstr "cannot unambiguously get sizeof scalar"
|
||||
|
||||
#~ msgid "keyword argument(s) not yet implemented - use normal args instead"
|
||||
#~ msgstr "keyword argument(s) not yet implemented - use normal args instead"
|
||||
|
||||
#~ msgid "length argument not allowed for this type"
|
||||
#~ msgstr "length argument not allowed for this type"
|
||||
|
||||
#~ msgid "offset out of bounds"
|
||||
#~ msgstr "offset out of bounds"
|
||||
|
||||
#~ msgid "slice step can't be zero"
|
||||
#~ msgstr "slice step can't be zero"
|
||||
|
||||
#~ msgid "string not supported; use bytes or bytearray"
|
||||
#~ msgstr "string not supported; use bytes or bytearray"
|
||||
|
||||
#~ msgid "Bit clock and word select must be sequential pins"
|
||||
#~ msgstr "Bit clock and word select must be sequential pins"
|
||||
|
||||
#~ msgid "Initialization failed due to lack of memory"
|
||||
#~ msgstr "Initialisation failed due to lack of memory"
|
||||
|
||||
|
170
locale/es.po
170
locale/es.po
@ -154,7 +154,7 @@ msgstr "%q en %q debe ser del tipo %q, no %q"
|
||||
msgid "%q in use"
|
||||
msgstr "%q está siendo utilizado"
|
||||
|
||||
#: py/objstr.c py/objstrunicode.c
|
||||
#: py/objstr.c
|
||||
msgid "%q index out of range"
|
||||
msgstr "%q índice fuera de rango"
|
||||
|
||||
@ -241,7 +241,7 @@ msgstr "%q debe ser una matriz de tipo 'h'"
|
||||
msgid "%q must be of type %q or %q, not %q"
|
||||
msgstr "%q debe ser del tipo %q o %q, y no %q"
|
||||
|
||||
#: py/argcheck.c py/objstrunicode.c shared-module/synthio/__init__.c
|
||||
#: py/argcheck.c shared-module/synthio/__init__.c
|
||||
msgid "%q must be of type %q, not %q"
|
||||
msgstr "%q debe ser del tipo %q, y no %q"
|
||||
|
||||
@ -294,6 +294,11 @@ msgstr "%q[%u] usa un pin extra"
|
||||
msgid "%q[%u] waits on input outside of count"
|
||||
msgstr "%q[%u] espera entrada fuera del contador"
|
||||
|
||||
#: py/runtime.c
|
||||
#, c-format
|
||||
msgid "%s"
|
||||
msgstr ""
|
||||
|
||||
#: ports/espressif/common-hal/espidf/__init__.c
|
||||
#, c-format
|
||||
msgid "%s error 0x%x"
|
||||
@ -647,8 +652,8 @@ msgid "Below minimum frame rate"
|
||||
msgstr "Por debajo de la tasa mínima de refrescamiento"
|
||||
|
||||
#: ports/raspberrypi/common-hal/audiobusio/I2SOut.c
|
||||
msgid "Bit clock and word select must be sequential pins"
|
||||
msgstr "Los pines \"clock\" y \"word-select\" deben ser consecutivos"
|
||||
msgid "Bit clock and word select must be sequential GPIO pins"
|
||||
msgstr ""
|
||||
|
||||
#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c
|
||||
msgid "Bit clock and word select must share a clock unit"
|
||||
@ -1135,8 +1140,6 @@ msgstr "Inicialización GNSS"
|
||||
msgid "Generic Failure"
|
||||
msgstr "Fallo Genérico"
|
||||
|
||||
#: shared-bindings/displayio/Display.c
|
||||
#: shared-bindings/displayio/EPaperDisplay.c
|
||||
#: shared-bindings/framebufferio/FramebufferDisplay.c
|
||||
#: shared-module/displayio/Display.c
|
||||
#: shared-module/framebufferio/FramebufferDisplay.c
|
||||
@ -2015,10 +2018,6 @@ msgstr "Los buffers de fuente y destino deben ser del mismo tamaño"
|
||||
msgid "Specify exactly one of data0 or data_pins"
|
||||
msgstr "Especifique exactamente uno de data0 or data_pins"
|
||||
|
||||
#: extmod/modure.c
|
||||
msgid "Splitting with sub-captures"
|
||||
msgstr "Dividiendo con sub-capturas"
|
||||
|
||||
#: ports/raspberrypi/common-hal/audiopwmio/PWMAudioOut.c
|
||||
msgid "Stereo left must be on PWM channel A"
|
||||
msgstr "Estéreo izquierdo debe estar en el canal PWM A"
|
||||
@ -2469,8 +2468,9 @@ msgid "__init__() should return None"
|
||||
msgstr "__init__() deberia devolver None"
|
||||
|
||||
#: py/objtype.c
|
||||
msgid "__init__() should return None, not '%q'"
|
||||
msgstr "__init__() debe retornar None, no '%q'"
|
||||
#, c-format
|
||||
msgid "__init__() should return None, not '%s'"
|
||||
msgstr "__init__() deberia devolver None, no '%s'"
|
||||
|
||||
#: py/objobject.c
|
||||
msgid "__new__ arg must be a user-type"
|
||||
@ -2559,8 +2559,8 @@ msgid "attempt to get argmin/argmax of an empty sequence"
|
||||
msgstr "intento de obtener argmin/argmax de una secuencia vacía"
|
||||
|
||||
#: py/objstr.c
|
||||
msgid "attributes not supported yet"
|
||||
msgstr "atributos aún no soportados"
|
||||
msgid "attributes not supported"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/ulab/code/ulab_tools.c
|
||||
msgid "axis is out of bounds"
|
||||
@ -2687,7 +2687,7 @@ msgstr "no se puede asignar a la expresión"
|
||||
msgid "can't cancel self"
|
||||
msgstr "no se puede cancelar a si mismo"
|
||||
|
||||
#: py/objint.c py/runtime.c shared-module/adafruit_pixelbuf/PixelBuf.c
|
||||
#: py/runtime.c shared-module/adafruit_pixelbuf/PixelBuf.c
|
||||
msgid "can't convert %q to %q"
|
||||
msgstr "no puede convertir %q a %q"
|
||||
|
||||
@ -2705,10 +2705,18 @@ msgstr "no se puede convertir %s a float"
|
||||
msgid "can't convert '%q' object to %q implicitly"
|
||||
msgstr "no se puede convertir el objeto '%q' a %q implícitamente"
|
||||
|
||||
#: py/objint.c
|
||||
msgid "can't convert NaN to int"
|
||||
msgstr "no se puede convertir Nan a int"
|
||||
|
||||
#: extmod/ulab/code/numpy/vector.c
|
||||
msgid "can't convert complex to float"
|
||||
msgstr "no se puede convertir complejo a float"
|
||||
|
||||
#: py/objint.c
|
||||
msgid "can't convert inf to int"
|
||||
msgstr "no se puede convertir inf en int"
|
||||
|
||||
#: py/obj.c
|
||||
msgid "can't convert to complex"
|
||||
msgstr "no se puede convertir a complejo"
|
||||
@ -2737,14 +2745,14 @@ msgstr "no se puede borrar la expresión"
|
||||
msgid "can't do binary op between '%q' and '%q'"
|
||||
msgstr "no se puede hacer una operacion binaria entre '%q' y '%q'"
|
||||
|
||||
#: py/objcomplex.c
|
||||
msgid "can't do truncated division of a complex number"
|
||||
msgstr "no se puede hacer la división truncada de un número complejo"
|
||||
|
||||
#: py/emitnative.c
|
||||
msgid "can't implicitly convert '%q' to 'bool'"
|
||||
msgstr "no se puede convertir implícitamente '%q' a 'bool'"
|
||||
|
||||
#: py/runtime.c
|
||||
msgid "can't import name %q"
|
||||
msgstr ""
|
||||
|
||||
#: py/emitnative.c
|
||||
msgid "can't load from '%q'"
|
||||
msgstr "no se puede cargar desde '%q'"
|
||||
@ -2800,6 +2808,14 @@ msgstr ""
|
||||
"no se puede cambiar de especificación de campo manual a numeración "
|
||||
"automática de campos"
|
||||
|
||||
#: py/objcomplex.c
|
||||
msgid "can't truncate-divide a complex number"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/moductypes.c
|
||||
msgid "can't unambiguously get sizeof scalar"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/moduasyncio.c
|
||||
msgid "can't wait"
|
||||
msgstr "no se puede esperar"
|
||||
@ -2832,18 +2848,10 @@ msgstr "no se puede crear instancia"
|
||||
msgid "cannot delete array elements"
|
||||
msgstr "no se pudo eliminar elementos del array"
|
||||
|
||||
#: py/runtime.c
|
||||
msgid "cannot import name %q"
|
||||
msgstr "no se puede importar name '%q'"
|
||||
|
||||
#: extmod/ulab/code/ndarray.c
|
||||
msgid "cannot reshape array"
|
||||
msgstr "no puede remodelar la matriz"
|
||||
|
||||
#: extmod/moductypes.c
|
||||
msgid "cannot unambiguously get sizeof scalar"
|
||||
msgstr "no se puede sin ambiguedades traer el sizeof del escalar"
|
||||
|
||||
#: py/emitnative.c
|
||||
msgid "casting"
|
||||
msgstr "convirtiendo tipo"
|
||||
@ -2892,6 +2900,10 @@ msgstr "color debe estar entre 0x000000 y 0xffffff"
|
||||
msgid "comparison of int and uint"
|
||||
msgstr "comparación entre int y uint"
|
||||
|
||||
#: py/objcomplex.c
|
||||
msgid "complex divide by zero"
|
||||
msgstr ""
|
||||
|
||||
#: py/objfloat.c py/parsenum.c
|
||||
msgid "complex values not supported"
|
||||
msgstr "valores complejos no soportados"
|
||||
@ -3469,10 +3481,8 @@ msgstr ""
|
||||
"join espera una lista de objetos str/bytes consistentes con el mismo objeto"
|
||||
|
||||
#: py/argcheck.c
|
||||
msgid "keyword argument(s) not yet implemented - use normal args instead"
|
||||
msgid "keyword argument(s) not implemented - use normal args instead"
|
||||
msgstr ""
|
||||
"argumento(s) por palabra clave aún no implementados - usa argumentos "
|
||||
"normales en su lugar"
|
||||
|
||||
#: py/emitinlinethumb.c py/emitinlinextensa.c
|
||||
msgid "label '%q' not defined"
|
||||
@ -3482,10 +3492,6 @@ msgstr "etiqueta '%q' no definida"
|
||||
msgid "label redefined"
|
||||
msgstr "etiqueta redefinida"
|
||||
|
||||
#: py/stream.c
|
||||
msgid "length argument not allowed for this type"
|
||||
msgstr "argumento length no permitido para este tipo"
|
||||
|
||||
#: shared-bindings/audiomixer/MixerVoice.c
|
||||
msgid "level must be between 0 and 1"
|
||||
msgstr "el nivel debe ser entre 0 y 1"
|
||||
@ -3572,6 +3578,10 @@ msgstr "la asignación de memoria falló, asignando %u bytes"
|
||||
msgid "memory allocation failed, heap is locked"
|
||||
msgstr "la asignación de memoria falló, el heap está bloqueado"
|
||||
|
||||
#: py/objarray.c
|
||||
msgid "memoryview offset too large"
|
||||
msgstr ""
|
||||
|
||||
#: py/objarray.c
|
||||
msgid "memoryview: length is not a multiple of itemsize"
|
||||
msgstr ""
|
||||
@ -3621,6 +3631,10 @@ msgstr "name '%q' no esta definido"
|
||||
msgid "name not defined"
|
||||
msgstr "name no definido"
|
||||
|
||||
#: py/persistentcode.c
|
||||
msgid "native code in .mpy unsupported"
|
||||
msgstr ""
|
||||
|
||||
#: py/asmthumb.c
|
||||
msgid "native method too big"
|
||||
msgstr "método nativo muy grande"
|
||||
@ -3695,7 +3709,7 @@ msgstr "no UUID encontrado en service_uuids_whitelist"
|
||||
msgid "non-default argument follows default argument"
|
||||
msgstr "argumento no predeterminado sigue argumento predeterminado"
|
||||
|
||||
#: extmod/modubinascii.c
|
||||
#: py/objstr.c
|
||||
msgid "non-hex digit found"
|
||||
msgstr "digito non-hex encontrado"
|
||||
|
||||
@ -3786,7 +3800,7 @@ msgstr "el objeto de tipo '%s' no tiene len()"
|
||||
msgid "object with buffer protocol required"
|
||||
msgstr "objeto con protocolo de buffer requerido"
|
||||
|
||||
#: extmod/modubinascii.c
|
||||
#: py/objstr.c
|
||||
msgid "odd-length string"
|
||||
msgstr "string de longitud impar"
|
||||
|
||||
@ -3806,10 +3820,6 @@ msgstr "offset debe ser >= 0"
|
||||
msgid "offset must be non-negative and no greater than buffer length"
|
||||
msgstr "offset debe ser non-negative y no mayo que la longitud del buffer"
|
||||
|
||||
#: py/objstr.c py/objstrunicode.c
|
||||
msgid "offset out of bounds"
|
||||
msgstr "offset fuera de límites"
|
||||
|
||||
#: ports/nrf/common-hal/audiobusio/PDMIn.c
|
||||
#: ports/stm/common-hal/audiobusio/PDMIn.c
|
||||
msgid "only bit_depth=16 is supported"
|
||||
@ -4058,10 +4068,6 @@ msgstr "el tamaño se define solo para ndarrays"
|
||||
msgid "sleep length must be non-negative"
|
||||
msgstr "la longitud de sleep no puede ser negativa"
|
||||
|
||||
#: extmod/ulab/code/ndarray.c
|
||||
msgid "slice step can't be zero"
|
||||
msgstr "el tamaño de la división no puede ser cero"
|
||||
|
||||
#: py/nativeglue.c
|
||||
msgid "slice unsupported"
|
||||
msgstr "sin capacidades para rebanado"
|
||||
@ -4106,6 +4112,10 @@ msgstr "source_bitmap debe tener value_count de 65536"
|
||||
msgid "source_bitmap must have value_count of 8"
|
||||
msgstr "source_bitmap debe tener value_count de 8"
|
||||
|
||||
#: extmod/modure.c
|
||||
msgid "splitting with sub-captures"
|
||||
msgstr ""
|
||||
|
||||
#: py/objstr.c
|
||||
msgid "start/end indices"
|
||||
msgstr "índices inicio/final"
|
||||
@ -4118,9 +4128,18 @@ msgstr "stop no se puede alcanzar del principio"
|
||||
msgid "stream operation not supported"
|
||||
msgstr "operación stream no soportada"
|
||||
|
||||
#: py/stream.c
|
||||
msgid "string not supported; use bytes or bytearray"
|
||||
msgstr "string no soportado; usa bytes o bytearray"
|
||||
#: py/objarray.c py/objstr.c
|
||||
msgid "string argument without an encoding"
|
||||
msgstr ""
|
||||
|
||||
#: py/objstrunicode.c
|
||||
msgid "string index out of range"
|
||||
msgstr "string index fuera de rango"
|
||||
|
||||
#: py/objstrunicode.c
|
||||
#, c-format
|
||||
msgid "string indices must be integers, not %s"
|
||||
msgstr "índices de string deben ser enteros, no %s"
|
||||
|
||||
#: extmod/moductypes.c
|
||||
msgid "struct: can't index"
|
||||
@ -4150,6 +4169,10 @@ msgstr "error de sintaxis en JSON"
|
||||
msgid "syntax error in uctypes descriptor"
|
||||
msgstr "error de sintaxis en el descriptor uctypes"
|
||||
|
||||
#: extmod/utime_mphal.c
|
||||
msgid "ticks interval overflow"
|
||||
msgstr ""
|
||||
|
||||
#: ports/nrf/common-hal/watchdog/WatchDogTimer.c
|
||||
msgid "timeout duration exceeded the maximum supported value"
|
||||
msgstr ""
|
||||
@ -4424,6 +4447,44 @@ msgstr "zi debe ser de tipo flotante"
|
||||
msgid "zi must be of shape (n_section, 2)"
|
||||
msgstr "zi debe ser una forma (n_section,2)"
|
||||
|
||||
#~ msgid "Splitting with sub-captures"
|
||||
#~ msgstr "Dividiendo con sub-capturas"
|
||||
|
||||
#~ msgid "__init__() should return None, not '%q'"
|
||||
#~ msgstr "__init__() debe retornar None, no '%q'"
|
||||
|
||||
#~ msgid "attributes not supported yet"
|
||||
#~ msgstr "atributos aún no soportados"
|
||||
|
||||
#~ msgid "can't do truncated division of a complex number"
|
||||
#~ msgstr "no se puede hacer la división truncada de un número complejo"
|
||||
|
||||
#~ msgid "cannot import name %q"
|
||||
#~ msgstr "no se puede importar name '%q'"
|
||||
|
||||
#~ msgid "cannot unambiguously get sizeof scalar"
|
||||
#~ msgstr "no se puede sin ambiguedades traer el sizeof del escalar"
|
||||
|
||||
#~ msgid "keyword argument(s) not yet implemented - use normal args instead"
|
||||
#~ msgstr ""
|
||||
#~ "argumento(s) por palabra clave aún no implementados - usa argumentos "
|
||||
#~ "normales en su lugar"
|
||||
|
||||
#~ msgid "length argument not allowed for this type"
|
||||
#~ msgstr "argumento length no permitido para este tipo"
|
||||
|
||||
#~ msgid "offset out of bounds"
|
||||
#~ msgstr "offset fuera de límites"
|
||||
|
||||
#~ msgid "slice step can't be zero"
|
||||
#~ msgstr "el tamaño de la división no puede ser cero"
|
||||
|
||||
#~ msgid "string not supported; use bytes or bytearray"
|
||||
#~ msgstr "string no soportado; usa bytes o bytearray"
|
||||
|
||||
#~ msgid "Bit clock and word select must be sequential pins"
|
||||
#~ msgstr "Los pines \"clock\" y \"word-select\" deben ser consecutivos"
|
||||
|
||||
#~ msgid "Initialization failed due to lack of memory"
|
||||
#~ msgstr "Inicializacion fallida por falta de memoria"
|
||||
|
||||
@ -5870,21 +5931,12 @@ msgstr "zi debe ser una forma (n_section,2)"
|
||||
#~ msgid "Running in safe mode! Auto-reload is off.\n"
|
||||
#~ msgstr "Ejecutando en modo seguro! La auto-recarga esta deshabilitada.\n"
|
||||
|
||||
#~ msgid "__init__() should return None, not '%s'"
|
||||
#~ msgstr "__init__() deberia devolver None, no '%s'"
|
||||
|
||||
#~ msgid "can't convert %s to int"
|
||||
#~ msgstr "no se puede convertir %s a int"
|
||||
|
||||
#~ msgid "can't convert NaN to int"
|
||||
#~ msgstr "no se puede convertir Nan a int"
|
||||
|
||||
#~ msgid "can't convert address to int"
|
||||
#~ msgstr "no se puede convertir address a int"
|
||||
|
||||
#~ msgid "can't convert inf to int"
|
||||
#~ msgstr "no se puede convertir inf en int"
|
||||
|
||||
#~ msgid "object '%s' is not a tuple or list"
|
||||
#~ msgstr "el objeto '%s' no es una tupla o lista"
|
||||
|
||||
@ -5897,12 +5949,6 @@ msgstr "zi debe ser una forma (n_section,2)"
|
||||
#~ msgid "popitem(): dictionary is empty"
|
||||
#~ msgstr "popitem(): diccionario vacío"
|
||||
|
||||
#~ msgid "string index out of range"
|
||||
#~ msgstr "string index fuera de rango"
|
||||
|
||||
#~ msgid "string indices must be integers, not %s"
|
||||
#~ msgstr "índices de string deben ser enteros, no %s"
|
||||
|
||||
#~ msgid "unknown format code '%c' for object of type '%s'"
|
||||
#~ msgstr "codigo format desconocido '%c' para el typo de objeto '%s'"
|
||||
|
||||
|
160
locale/fil.po
160
locale/fil.po
@ -140,7 +140,7 @@ msgstr ""
|
||||
msgid "%q in use"
|
||||
msgstr "%q ay ginagamit"
|
||||
|
||||
#: py/objstr.c py/objstrunicode.c
|
||||
#: py/objstr.c
|
||||
msgid "%q index out of range"
|
||||
msgstr "%q indeks wala sa sakop"
|
||||
|
||||
@ -227,7 +227,7 @@ msgstr ""
|
||||
msgid "%q must be of type %q or %q, not %q"
|
||||
msgstr ""
|
||||
|
||||
#: py/argcheck.c py/objstrunicode.c shared-module/synthio/__init__.c
|
||||
#: py/argcheck.c shared-module/synthio/__init__.c
|
||||
msgid "%q must be of type %q, not %q"
|
||||
msgstr ""
|
||||
|
||||
@ -281,6 +281,11 @@ msgstr ""
|
||||
msgid "%q[%u] waits on input outside of count"
|
||||
msgstr ""
|
||||
|
||||
#: py/runtime.c
|
||||
#, c-format
|
||||
msgid "%s"
|
||||
msgstr ""
|
||||
|
||||
#: ports/espressif/common-hal/espidf/__init__.c
|
||||
#, c-format
|
||||
msgid "%s error 0x%x"
|
||||
@ -633,7 +638,7 @@ msgid "Below minimum frame rate"
|
||||
msgstr ""
|
||||
|
||||
#: ports/raspberrypi/common-hal/audiobusio/I2SOut.c
|
||||
msgid "Bit clock and word select must be sequential pins"
|
||||
msgid "Bit clock and word select must be sequential GPIO pins"
|
||||
msgstr ""
|
||||
|
||||
#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c
|
||||
@ -1110,8 +1115,6 @@ msgstr ""
|
||||
msgid "Generic Failure"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/displayio/Display.c
|
||||
#: shared-bindings/displayio/EPaperDisplay.c
|
||||
#: shared-bindings/framebufferio/FramebufferDisplay.c
|
||||
#: shared-module/displayio/Display.c
|
||||
#: shared-module/framebufferio/FramebufferDisplay.c
|
||||
@ -1970,10 +1973,6 @@ msgstr ""
|
||||
msgid "Specify exactly one of data0 or data_pins"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/modure.c
|
||||
msgid "Splitting with sub-captures"
|
||||
msgstr "Binibiyak gamit ang sub-captures"
|
||||
|
||||
#: ports/raspberrypi/common-hal/audiopwmio/PWMAudioOut.c
|
||||
msgid "Stereo left must be on PWM channel A"
|
||||
msgstr ""
|
||||
@ -2412,8 +2411,9 @@ msgid "__init__() should return None"
|
||||
msgstr "__init__() dapat magbalik na None"
|
||||
|
||||
#: py/objtype.c
|
||||
msgid "__init__() should return None, not '%q'"
|
||||
msgstr ""
|
||||
#, c-format
|
||||
msgid "__init__() should return None, not '%s'"
|
||||
msgstr "__init__() dapat magbalink na None, hindi '%s'"
|
||||
|
||||
#: py/objobject.c
|
||||
msgid "__new__ arg must be a user-type"
|
||||
@ -2502,8 +2502,8 @@ msgid "attempt to get argmin/argmax of an empty sequence"
|
||||
msgstr ""
|
||||
|
||||
#: py/objstr.c
|
||||
msgid "attributes not supported yet"
|
||||
msgstr "attributes hindi sinusuportahan"
|
||||
msgid "attributes not supported"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/ulab/code/ulab_tools.c
|
||||
msgid "axis is out of bounds"
|
||||
@ -2632,7 +2632,7 @@ msgstr "hindi ma i-assign sa expression"
|
||||
msgid "can't cancel self"
|
||||
msgstr ""
|
||||
|
||||
#: py/objint.c py/runtime.c shared-module/adafruit_pixelbuf/PixelBuf.c
|
||||
#: py/runtime.c shared-module/adafruit_pixelbuf/PixelBuf.c
|
||||
msgid "can't convert %q to %q"
|
||||
msgstr ""
|
||||
|
||||
@ -2650,10 +2650,18 @@ msgstr "hindi ma-convert %s sa int"
|
||||
msgid "can't convert '%q' object to %q implicitly"
|
||||
msgstr "hindi maaaring i-convert ang '%q' na bagay sa %q nang walang pahiwatig"
|
||||
|
||||
#: py/objint.c
|
||||
msgid "can't convert NaN to int"
|
||||
msgstr "hindi ma i-convert NaN sa int"
|
||||
|
||||
#: extmod/ulab/code/numpy/vector.c
|
||||
msgid "can't convert complex to float"
|
||||
msgstr ""
|
||||
|
||||
#: py/objint.c
|
||||
msgid "can't convert inf to int"
|
||||
msgstr "hindi ma i-convert inf sa int"
|
||||
|
||||
#: py/obj.c
|
||||
msgid "can't convert to complex"
|
||||
msgstr "hindi ma-convert sa complex"
|
||||
@ -2682,15 +2690,14 @@ msgstr "hindi mabura ang expression"
|
||||
msgid "can't do binary op between '%q' and '%q'"
|
||||
msgstr "hindi magawa ang binary op sa gitna ng '%q' at '%q'"
|
||||
|
||||
#: py/objcomplex.c
|
||||
msgid "can't do truncated division of a complex number"
|
||||
msgstr ""
|
||||
"hindi maaaring gawin ang truncated division ng isang kumplikadong numero"
|
||||
|
||||
#: py/emitnative.c
|
||||
msgid "can't implicitly convert '%q' to 'bool'"
|
||||
msgstr "hindi maaaring ma-convert ang ' %q' sa 'bool'"
|
||||
|
||||
#: py/runtime.c
|
||||
msgid "can't import name %q"
|
||||
msgstr ""
|
||||
|
||||
#: py/emitnative.c
|
||||
msgid "can't load from '%q'"
|
||||
msgstr "hidi ma i-load galing sa '%q'"
|
||||
@ -2745,6 +2752,14 @@ msgstr ""
|
||||
"hindi mapalitan ang manual field specification sa awtomatikong field "
|
||||
"numbering"
|
||||
|
||||
#: py/objcomplex.c
|
||||
msgid "can't truncate-divide a complex number"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/moductypes.c
|
||||
msgid "can't unambiguously get sizeof scalar"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/moduasyncio.c
|
||||
msgid "can't wait"
|
||||
msgstr ""
|
||||
@ -2777,18 +2792,10 @@ msgstr "hindi magawa ang instance"
|
||||
msgid "cannot delete array elements"
|
||||
msgstr ""
|
||||
|
||||
#: py/runtime.c
|
||||
msgid "cannot import name %q"
|
||||
msgstr "hindi ma-import ang name %q"
|
||||
|
||||
#: extmod/ulab/code/ndarray.c
|
||||
msgid "cannot reshape array"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/moductypes.c
|
||||
msgid "cannot unambiguously get sizeof scalar"
|
||||
msgstr ""
|
||||
|
||||
#: py/emitnative.c
|
||||
msgid "casting"
|
||||
msgstr "casting"
|
||||
@ -2837,6 +2844,10 @@ msgstr "color ay dapat mula sa 0x000000 hangang 0xffffff"
|
||||
msgid "comparison of int and uint"
|
||||
msgstr ""
|
||||
|
||||
#: py/objcomplex.c
|
||||
msgid "complex divide by zero"
|
||||
msgstr ""
|
||||
|
||||
#: py/objfloat.c py/parsenum.c
|
||||
msgid "complex values not supported"
|
||||
msgstr "kumplikadong values hindi sinusuportahan"
|
||||
@ -3416,10 +3427,8 @@ msgstr ""
|
||||
"object"
|
||||
|
||||
#: py/argcheck.c
|
||||
msgid "keyword argument(s) not yet implemented - use normal args instead"
|
||||
msgid "keyword argument(s) not implemented - use normal args instead"
|
||||
msgstr ""
|
||||
"kindi pa ipinapatupad ang (mga) argument(s) ng keyword - gumamit ng normal "
|
||||
"args"
|
||||
|
||||
#: py/emitinlinethumb.c py/emitinlinextensa.c
|
||||
msgid "label '%q' not defined"
|
||||
@ -3429,10 +3438,6 @@ msgstr "label '%d' kailangan na i-define"
|
||||
msgid "label redefined"
|
||||
msgstr "ang label ay na-define ulit"
|
||||
|
||||
#: py/stream.c
|
||||
msgid "length argument not allowed for this type"
|
||||
msgstr "length argument ay walang pahintulot sa ganitong type"
|
||||
|
||||
#: shared-bindings/audiomixer/MixerVoice.c
|
||||
msgid "level must be between 0 and 1"
|
||||
msgstr ""
|
||||
@ -3519,6 +3524,10 @@ msgstr "nabigo ang paglalaan ng memorya, paglalaan ng %u bytes"
|
||||
msgid "memory allocation failed, heap is locked"
|
||||
msgstr "abigo ang paglalaan ng memorya, ang heap ay naka-lock"
|
||||
|
||||
#: py/objarray.c
|
||||
msgid "memoryview offset too large"
|
||||
msgstr ""
|
||||
|
||||
#: py/objarray.c
|
||||
msgid "memoryview: length is not a multiple of itemsize"
|
||||
msgstr ""
|
||||
@ -3567,6 +3576,10 @@ msgstr "name '%q' ay hindi defined"
|
||||
msgid "name not defined"
|
||||
msgstr "name hindi na define"
|
||||
|
||||
#: py/persistentcode.c
|
||||
msgid "native code in .mpy unsupported"
|
||||
msgstr ""
|
||||
|
||||
#: py/asmthumb.c
|
||||
msgid "native method too big"
|
||||
msgstr ""
|
||||
@ -3641,7 +3654,7 @@ msgstr ""
|
||||
msgid "non-default argument follows default argument"
|
||||
msgstr "non-default argument sumusunod sa default argument"
|
||||
|
||||
#: extmod/modubinascii.c
|
||||
#: py/objstr.c
|
||||
msgid "non-hex digit found"
|
||||
msgstr "non-hex digit nahanap"
|
||||
|
||||
@ -3731,7 +3744,7 @@ msgstr "object na type '%s' walang len()"
|
||||
msgid "object with buffer protocol required"
|
||||
msgstr "object na may buffer protocol kinakailangan"
|
||||
|
||||
#: extmod/modubinascii.c
|
||||
#: py/objstr.c
|
||||
msgid "odd-length string"
|
||||
msgstr "odd-length string"
|
||||
|
||||
@ -3751,11 +3764,6 @@ msgstr ""
|
||||
msgid "offset must be non-negative and no greater than buffer length"
|
||||
msgstr ""
|
||||
|
||||
#: py/objstr.c py/objstrunicode.c
|
||||
#, fuzzy
|
||||
msgid "offset out of bounds"
|
||||
msgstr "wala sa sakop ang address"
|
||||
|
||||
#: ports/nrf/common-hal/audiobusio/PDMIn.c
|
||||
#: ports/stm/common-hal/audiobusio/PDMIn.c
|
||||
msgid "only bit_depth=16 is supported"
|
||||
@ -4005,10 +4013,6 @@ msgstr ""
|
||||
msgid "sleep length must be non-negative"
|
||||
msgstr "sleep length ay dapat hindi negatibo"
|
||||
|
||||
#: extmod/ulab/code/ndarray.c
|
||||
msgid "slice step can't be zero"
|
||||
msgstr ""
|
||||
|
||||
#: py/nativeglue.c
|
||||
msgid "slice unsupported"
|
||||
msgstr ""
|
||||
@ -4053,6 +4057,10 @@ msgstr ""
|
||||
msgid "source_bitmap must have value_count of 8"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/modure.c
|
||||
msgid "splitting with sub-captures"
|
||||
msgstr ""
|
||||
|
||||
#: py/objstr.c
|
||||
msgid "start/end indices"
|
||||
msgstr "start/end indeks"
|
||||
@ -4065,9 +4073,18 @@ msgstr "stop hindi maabot sa simula"
|
||||
msgid "stream operation not supported"
|
||||
msgstr "stream operation hindi sinusuportahan"
|
||||
|
||||
#: py/stream.c
|
||||
msgid "string not supported; use bytes or bytearray"
|
||||
msgstr "string hindi supportado; gumamit ng bytes o kaya bytearray"
|
||||
#: py/objarray.c py/objstr.c
|
||||
msgid "string argument without an encoding"
|
||||
msgstr ""
|
||||
|
||||
#: py/objstrunicode.c
|
||||
msgid "string index out of range"
|
||||
msgstr "indeks ng string wala sa sakop"
|
||||
|
||||
#: py/objstrunicode.c
|
||||
#, c-format
|
||||
msgid "string indices must be integers, not %s"
|
||||
msgstr "ang indeks ng string ay dapat na integer, hindi %s"
|
||||
|
||||
#: extmod/moductypes.c
|
||||
msgid "struct: can't index"
|
||||
@ -4097,6 +4114,10 @@ msgstr "sintaks error sa JSON"
|
||||
msgid "syntax error in uctypes descriptor"
|
||||
msgstr "may pagkakamali sa sintaks sa uctypes descriptor"
|
||||
|
||||
#: extmod/utime_mphal.c
|
||||
msgid "ticks interval overflow"
|
||||
msgstr ""
|
||||
|
||||
#: ports/nrf/common-hal/watchdog/WatchDogTimer.c
|
||||
msgid "timeout duration exceeded the maximum supported value"
|
||||
msgstr ""
|
||||
@ -4370,6 +4391,34 @@ msgstr ""
|
||||
msgid "zi must be of shape (n_section, 2)"
|
||||
msgstr ""
|
||||
|
||||
#~ msgid "Splitting with sub-captures"
|
||||
#~ msgstr "Binibiyak gamit ang sub-captures"
|
||||
|
||||
#~ msgid "attributes not supported yet"
|
||||
#~ msgstr "attributes hindi sinusuportahan"
|
||||
|
||||
#~ msgid "can't do truncated division of a complex number"
|
||||
#~ msgstr ""
|
||||
#~ "hindi maaaring gawin ang truncated division ng isang kumplikadong numero"
|
||||
|
||||
#~ msgid "cannot import name %q"
|
||||
#~ msgstr "hindi ma-import ang name %q"
|
||||
|
||||
#~ msgid "keyword argument(s) not yet implemented - use normal args instead"
|
||||
#~ msgstr ""
|
||||
#~ "kindi pa ipinapatupad ang (mga) argument(s) ng keyword - gumamit ng "
|
||||
#~ "normal args"
|
||||
|
||||
#~ msgid "length argument not allowed for this type"
|
||||
#~ msgstr "length argument ay walang pahintulot sa ganitong type"
|
||||
|
||||
#, fuzzy
|
||||
#~ msgid "offset out of bounds"
|
||||
#~ msgstr "wala sa sakop ang address"
|
||||
|
||||
#~ msgid "string not supported; use bytes or bytearray"
|
||||
#~ msgstr "string hindi supportado; gumamit ng bytes o kaya bytearray"
|
||||
|
||||
#~ msgid "queue overflow"
|
||||
#~ msgstr "puno na ang pila (overflow)"
|
||||
|
||||
@ -4815,21 +4864,12 @@ msgstr ""
|
||||
#~ msgid "Running in safe mode! Auto-reload is off.\n"
|
||||
#~ msgstr "Tumatakbo sa safe mode! Awtomatikong pag re-reload ay OFF.\n"
|
||||
|
||||
#~ msgid "__init__() should return None, not '%s'"
|
||||
#~ msgstr "__init__() dapat magbalink na None, hindi '%s'"
|
||||
|
||||
#~ msgid "can't convert %s to int"
|
||||
#~ msgstr "hindi ma-convert %s sa int"
|
||||
|
||||
#~ msgid "can't convert NaN to int"
|
||||
#~ msgstr "hindi ma i-convert NaN sa int"
|
||||
|
||||
#~ msgid "can't convert address to int"
|
||||
#~ msgstr "hindi ma i-convert ang address sa INT"
|
||||
|
||||
#~ msgid "can't convert inf to int"
|
||||
#~ msgstr "hindi ma i-convert inf sa int"
|
||||
|
||||
#~ msgid "object '%s' is not a tuple or list"
|
||||
#~ msgstr "object '%s' ay hindi tuple o list"
|
||||
|
||||
@ -4842,12 +4882,6 @@ msgstr ""
|
||||
#~ msgid "popitem(): dictionary is empty"
|
||||
#~ msgstr "popitem(): dictionary ay walang laman"
|
||||
|
||||
#~ msgid "string index out of range"
|
||||
#~ msgstr "indeks ng string wala sa sakop"
|
||||
|
||||
#~ msgid "string indices must be integers, not %s"
|
||||
#~ msgstr "ang indeks ng string ay dapat na integer, hindi %s"
|
||||
|
||||
#~ msgid "unknown format code '%c' for object of type '%s'"
|
||||
#~ msgstr "hindi alam ang format code '%c' para sa object na ang type ay '%s'"
|
||||
|
||||
|
173
locale/fr.po
173
locale/fr.po
@ -151,7 +151,7 @@ msgstr "%q dans %q doit être de type %q, pas %q"
|
||||
msgid "%q in use"
|
||||
msgstr "%q en cours d'utilisation"
|
||||
|
||||
#: py/objstr.c py/objstrunicode.c
|
||||
#: py/objstr.c
|
||||
msgid "%q index out of range"
|
||||
msgstr "index %q hors de portée"
|
||||
|
||||
@ -238,7 +238,7 @@ msgstr "%q doit être array de type 'h'"
|
||||
msgid "%q must be of type %q or %q, not %q"
|
||||
msgstr "%q doit être de type %q ou %q, pas %q"
|
||||
|
||||
#: py/argcheck.c py/objstrunicode.c shared-module/synthio/__init__.c
|
||||
#: py/argcheck.c shared-module/synthio/__init__.c
|
||||
msgid "%q must be of type %q, not %q"
|
||||
msgstr "%q doit être de type %q, pas %q"
|
||||
|
||||
@ -293,6 +293,11 @@ msgstr "%q[%u] utilise des broches supplémentaires"
|
||||
msgid "%q[%u] waits on input outside of count"
|
||||
msgstr "%q[%u] attend sur une entrée hors du compte"
|
||||
|
||||
#: py/runtime.c
|
||||
#, c-format
|
||||
msgid "%s"
|
||||
msgstr ""
|
||||
|
||||
#: ports/espressif/common-hal/espidf/__init__.c
|
||||
#, c-format
|
||||
msgid "%s error 0x%x"
|
||||
@ -644,10 +649,8 @@ msgid "Below minimum frame rate"
|
||||
msgstr "Au-dessous de la fréquence d'images minimale"
|
||||
|
||||
#: ports/raspberrypi/common-hal/audiobusio/I2SOut.c
|
||||
msgid "Bit clock and word select must be sequential pins"
|
||||
msgid "Bit clock and word select must be sequential GPIO pins"
|
||||
msgstr ""
|
||||
"La sélection du bit d'horloge et de mot doit être sur des broches "
|
||||
"séquentielles"
|
||||
|
||||
#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c
|
||||
msgid "Bit clock and word select must share a clock unit"
|
||||
@ -1141,8 +1144,6 @@ msgstr "Initialisation GNSS"
|
||||
msgid "Generic Failure"
|
||||
msgstr "Échec génerique"
|
||||
|
||||
#: shared-bindings/displayio/Display.c
|
||||
#: shared-bindings/displayio/EPaperDisplay.c
|
||||
#: shared-bindings/framebufferio/FramebufferDisplay.c
|
||||
#: shared-module/displayio/Display.c
|
||||
#: shared-module/framebufferio/FramebufferDisplay.c
|
||||
@ -2021,10 +2022,6 @@ msgstr "Les tampons source et de destination doivent être de la même longueur"
|
||||
msgid "Specify exactly one of data0 or data_pins"
|
||||
msgstr "Spécifiez une unique broche parmi data0 ou data_pins"
|
||||
|
||||
#: extmod/modure.c
|
||||
msgid "Splitting with sub-captures"
|
||||
msgstr "Fractionnement avec des sous-captures"
|
||||
|
||||
#: ports/raspberrypi/common-hal/audiopwmio/PWMAudioOut.c
|
||||
msgid "Stereo left must be on PWM channel A"
|
||||
msgstr "Canal stéréo gauche doit être sur le canal PWM A"
|
||||
@ -2478,8 +2475,9 @@ msgid "__init__() should return None"
|
||||
msgstr "__init__() doit retourner None"
|
||||
|
||||
#: py/objtype.c
|
||||
msgid "__init__() should return None, not '%q'"
|
||||
msgstr "__init__() doit retourner None, pas '%q'"
|
||||
#, c-format
|
||||
msgid "__init__() should return None, not '%s'"
|
||||
msgstr "__init__() doit retourner None, pas '%s'"
|
||||
|
||||
#: py/objobject.c
|
||||
msgid "__new__ arg must be a user-type"
|
||||
@ -2568,8 +2566,8 @@ msgid "attempt to get argmin/argmax of an empty sequence"
|
||||
msgstr "tenter d'obtenir argmin / argmax d'une séquence vide"
|
||||
|
||||
#: py/objstr.c
|
||||
msgid "attributes not supported yet"
|
||||
msgstr "attribut pas encore supporté"
|
||||
msgid "attributes not supported"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/ulab/code/ulab_tools.c
|
||||
msgid "axis is out of bounds"
|
||||
@ -2697,7 +2695,7 @@ msgstr "ne peut pas assigner à une expression"
|
||||
msgid "can't cancel self"
|
||||
msgstr "ne peut pas s'annuler soi-même"
|
||||
|
||||
#: py/objint.c py/runtime.c shared-module/adafruit_pixelbuf/PixelBuf.c
|
||||
#: py/runtime.c shared-module/adafruit_pixelbuf/PixelBuf.c
|
||||
msgid "can't convert %q to %q"
|
||||
msgstr "impossible de convertir %q en %q"
|
||||
|
||||
@ -2715,10 +2713,18 @@ msgstr "ne peut convertir %s en nombre à virgule flottante 'float'"
|
||||
msgid "can't convert '%q' object to %q implicitly"
|
||||
msgstr "impossible de convertir l'objet '%q' en '%q' implicitement"
|
||||
|
||||
#: py/objint.c
|
||||
msgid "can't convert NaN to int"
|
||||
msgstr "on ne peut convertir NaN en entier 'int'"
|
||||
|
||||
#: extmod/ulab/code/numpy/vector.c
|
||||
msgid "can't convert complex to float"
|
||||
msgstr "ne peut convertir un complexe en flottant"
|
||||
|
||||
#: py/objint.c
|
||||
msgid "can't convert inf to int"
|
||||
msgstr "on ne peut convertir l'infini 'inf' en entier 'int'"
|
||||
|
||||
#: py/obj.c
|
||||
msgid "can't convert to complex"
|
||||
msgstr "ne peut convertir en nombre complexe"
|
||||
@ -2747,14 +2753,14 @@ msgstr "ne peut pas supprimer l'expression"
|
||||
msgid "can't do binary op between '%q' and '%q'"
|
||||
msgstr "opération binaire impossible entre '%q' et '%q'"
|
||||
|
||||
#: py/objcomplex.c
|
||||
msgid "can't do truncated division of a complex number"
|
||||
msgstr "on ne peut pas faire de division tronquée de nombres complexes"
|
||||
|
||||
#: py/emitnative.c
|
||||
msgid "can't implicitly convert '%q' to 'bool'"
|
||||
msgstr "impossible de convertir implicitement '%q' en 'bool'"
|
||||
|
||||
#: py/runtime.c
|
||||
msgid "can't import name %q"
|
||||
msgstr ""
|
||||
|
||||
#: py/emitnative.c
|
||||
msgid "can't load from '%q'"
|
||||
msgstr "impossible de charger depuis '%q'"
|
||||
@ -2811,6 +2817,14 @@ msgstr ""
|
||||
"impossible de passer d'une spécification manuelle des champs à une "
|
||||
"énumération auto"
|
||||
|
||||
#: py/objcomplex.c
|
||||
msgid "can't truncate-divide a complex number"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/moductypes.c
|
||||
msgid "can't unambiguously get sizeof scalar"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/moduasyncio.c
|
||||
msgid "can't wait"
|
||||
msgstr ""
|
||||
@ -2843,18 +2857,10 @@ msgstr "ne peut pas créer une instance"
|
||||
msgid "cannot delete array elements"
|
||||
msgstr ""
|
||||
|
||||
#: py/runtime.c
|
||||
msgid "cannot import name %q"
|
||||
msgstr "ne peut pas importer le nom %q"
|
||||
|
||||
#: extmod/ulab/code/ndarray.c
|
||||
msgid "cannot reshape array"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/moductypes.c
|
||||
msgid "cannot unambiguously get sizeof scalar"
|
||||
msgstr "ne peut récupérer sans ambigüité le sizeof d'un scalaire"
|
||||
|
||||
#: py/emitnative.c
|
||||
msgid "casting"
|
||||
msgstr "typage"
|
||||
@ -2906,6 +2912,10 @@ msgstr "la couleur doit être entre 0x000000 et 0xffffff"
|
||||
msgid "comparison of int and uint"
|
||||
msgstr "comparaison entre int et uint"
|
||||
|
||||
#: py/objcomplex.c
|
||||
msgid "complex divide by zero"
|
||||
msgstr ""
|
||||
|
||||
#: py/objfloat.c py/parsenum.c
|
||||
msgid "complex values not supported"
|
||||
msgstr "valeurs complexes non supportées"
|
||||
@ -3488,10 +3498,8 @@ msgstr ""
|
||||
"'join' s'attend à une liste d'objets str/bytes cohérents avec l'objet self"
|
||||
|
||||
#: py/argcheck.c
|
||||
msgid "keyword argument(s) not yet implemented - use normal args instead"
|
||||
msgid "keyword argument(s) not implemented - use normal args instead"
|
||||
msgstr ""
|
||||
"argument(s) nommé(s) pas encore implémenté(s) - utilisez les arguments "
|
||||
"normaux"
|
||||
|
||||
#: py/emitinlinethumb.c py/emitinlinextensa.c
|
||||
msgid "label '%q' not defined"
|
||||
@ -3501,10 +3509,6 @@ msgstr "label '%q' non supporté"
|
||||
msgid "label redefined"
|
||||
msgstr "étiquette redéfinie"
|
||||
|
||||
#: py/stream.c
|
||||
msgid "length argument not allowed for this type"
|
||||
msgstr "paramètre 'length' non-permis pour ce type"
|
||||
|
||||
#: shared-bindings/audiomixer/MixerVoice.c
|
||||
msgid "level must be between 0 and 1"
|
||||
msgstr "le niveau doit être compris entre 0 et 1"
|
||||
@ -3591,6 +3595,10 @@ msgstr "l'allocation de mémoire a échoué en allouant %u octets"
|
||||
msgid "memory allocation failed, heap is locked"
|
||||
msgstr "l'allocation de mémoire a échoué, le tas est vérrouillé"
|
||||
|
||||
#: py/objarray.c
|
||||
msgid "memoryview offset too large"
|
||||
msgstr ""
|
||||
|
||||
#: py/objarray.c
|
||||
msgid "memoryview: length is not a multiple of itemsize"
|
||||
msgstr "memoryview: length n'est pas un multiple de itemsize"
|
||||
@ -3639,6 +3647,10 @@ msgstr "nom '%q' non défini"
|
||||
msgid "name not defined"
|
||||
msgstr "nom non défini"
|
||||
|
||||
#: py/persistentcode.c
|
||||
msgid "native code in .mpy unsupported"
|
||||
msgstr ""
|
||||
|
||||
#: py/asmthumb.c
|
||||
msgid "native method too big"
|
||||
msgstr "la méthode native est trop longue"
|
||||
@ -3714,7 +3726,7 @@ msgid "non-default argument follows default argument"
|
||||
msgstr ""
|
||||
"un argument sans valeur par défaut suit un argument avec valeur par défaut"
|
||||
|
||||
#: extmod/modubinascii.c
|
||||
#: py/objstr.c
|
||||
msgid "non-hex digit found"
|
||||
msgstr "chiffre non-héxadécimale trouvé"
|
||||
|
||||
@ -3805,7 +3817,7 @@ msgstr "l'objet de type '%s' n'a pas de len()"
|
||||
msgid "object with buffer protocol required"
|
||||
msgstr "un objet avec un protocole de tampon est nécessaire"
|
||||
|
||||
#: extmod/modubinascii.c
|
||||
#: py/objstr.c
|
||||
msgid "odd-length string"
|
||||
msgstr "chaîne de longueur impaire"
|
||||
|
||||
@ -3826,10 +3838,6 @@ msgid "offset must be non-negative and no greater than buffer length"
|
||||
msgstr ""
|
||||
"offset ne doit pas être négatif, et pas plus grand que la taille du tampon"
|
||||
|
||||
#: py/objstr.c py/objstrunicode.c
|
||||
msgid "offset out of bounds"
|
||||
msgstr "décalage hors limites"
|
||||
|
||||
#: ports/nrf/common-hal/audiobusio/PDMIn.c
|
||||
#: ports/stm/common-hal/audiobusio/PDMIn.c
|
||||
msgid "only bit_depth=16 is supported"
|
||||
@ -4079,10 +4087,6 @@ msgstr "la taille n'est définie que pour les ndarrays"
|
||||
msgid "sleep length must be non-negative"
|
||||
msgstr "la longueur de sleep ne doit pas être négative"
|
||||
|
||||
#: extmod/ulab/code/ndarray.c
|
||||
msgid "slice step can't be zero"
|
||||
msgstr "le pas 'step' de la tranche ne peut être zéro"
|
||||
|
||||
#: py/nativeglue.c
|
||||
msgid "slice unsupported"
|
||||
msgstr "slice non-supporté"
|
||||
@ -4127,6 +4131,10 @@ msgstr "source_bitmap doit avoir une value_count de 65536"
|
||||
msgid "source_bitmap must have value_count of 8"
|
||||
msgstr "source_bitmap doit avoir une value_count de 8"
|
||||
|
||||
#: extmod/modure.c
|
||||
msgid "splitting with sub-captures"
|
||||
msgstr ""
|
||||
|
||||
#: py/objstr.c
|
||||
msgid "start/end indices"
|
||||
msgstr "indices de début/fin"
|
||||
@ -4139,10 +4147,18 @@ msgstr "stop n'est pas accessible au démarrage"
|
||||
msgid "stream operation not supported"
|
||||
msgstr "opération de flux non supportée"
|
||||
|
||||
#: py/stream.c
|
||||
msgid "string not supported; use bytes or bytearray"
|
||||
#: py/objarray.c py/objstr.c
|
||||
msgid "string argument without an encoding"
|
||||
msgstr ""
|
||||
"chaîne de carac. non supportée; utilisez des bytes ou une matrice de bytes"
|
||||
|
||||
#: py/objstrunicode.c
|
||||
msgid "string index out of range"
|
||||
msgstr "index de chaîne hors gamme"
|
||||
|
||||
#: py/objstrunicode.c
|
||||
#, c-format
|
||||
msgid "string indices must be integers, not %s"
|
||||
msgstr "les indices de chaîne de caractères doivent être des entiers, pas %s"
|
||||
|
||||
#: extmod/moductypes.c
|
||||
msgid "struct: can't index"
|
||||
@ -4172,6 +4188,10 @@ msgstr "erreur de syntaxe JSON"
|
||||
msgid "syntax error in uctypes descriptor"
|
||||
msgstr "erreur de syntaxe dans le descripteur d'uctypes"
|
||||
|
||||
#: extmod/utime_mphal.c
|
||||
msgid "ticks interval overflow"
|
||||
msgstr ""
|
||||
|
||||
#: ports/nrf/common-hal/watchdog/WatchDogTimer.c
|
||||
msgid "timeout duration exceeded the maximum supported value"
|
||||
msgstr "le délai d'expiration a dépassé la valeur maximale prise en charge"
|
||||
@ -4445,6 +4465,47 @@ msgstr "zi doit être de type float"
|
||||
msgid "zi must be of shape (n_section, 2)"
|
||||
msgstr "zi doit être de forme (n_section, 2)"
|
||||
|
||||
#~ msgid "Splitting with sub-captures"
|
||||
#~ msgstr "Fractionnement avec des sous-captures"
|
||||
|
||||
#~ msgid "__init__() should return None, not '%q'"
|
||||
#~ msgstr "__init__() doit retourner None, pas '%q'"
|
||||
|
||||
#~ msgid "attributes not supported yet"
|
||||
#~ msgstr "attribut pas encore supporté"
|
||||
|
||||
#~ msgid "can't do truncated division of a complex number"
|
||||
#~ msgstr "on ne peut pas faire de division tronquée de nombres complexes"
|
||||
|
||||
#~ msgid "cannot import name %q"
|
||||
#~ msgstr "ne peut pas importer le nom %q"
|
||||
|
||||
#~ msgid "cannot unambiguously get sizeof scalar"
|
||||
#~ msgstr "ne peut récupérer sans ambigüité le sizeof d'un scalaire"
|
||||
|
||||
#~ msgid "keyword argument(s) not yet implemented - use normal args instead"
|
||||
#~ msgstr ""
|
||||
#~ "argument(s) nommé(s) pas encore implémenté(s) - utilisez les arguments "
|
||||
#~ "normaux"
|
||||
|
||||
#~ msgid "length argument not allowed for this type"
|
||||
#~ msgstr "paramètre 'length' non-permis pour ce type"
|
||||
|
||||
#~ msgid "offset out of bounds"
|
||||
#~ msgstr "décalage hors limites"
|
||||
|
||||
#~ msgid "slice step can't be zero"
|
||||
#~ msgstr "le pas 'step' de la tranche ne peut être zéro"
|
||||
|
||||
#~ msgid "string not supported; use bytes or bytearray"
|
||||
#~ msgstr ""
|
||||
#~ "chaîne de carac. non supportée; utilisez des bytes ou une matrice de bytes"
|
||||
|
||||
#~ msgid "Bit clock and word select must be sequential pins"
|
||||
#~ msgstr ""
|
||||
#~ "La sélection du bit d'horloge et de mot doit être sur des broches "
|
||||
#~ "séquentielles"
|
||||
|
||||
#~ msgid "Initialization failed due to lack of memory"
|
||||
#~ msgstr "Échec d'initialisation par manque de mémoire"
|
||||
|
||||
@ -5920,21 +5981,12 @@ msgstr "zi doit être de forme (n_section, 2)"
|
||||
#~ msgid "Running in safe mode! Auto-reload is off.\n"
|
||||
#~ msgstr "Mode sans-échec ! Auto-chargement désactivé.\n"
|
||||
|
||||
#~ msgid "__init__() should return None, not '%s'"
|
||||
#~ msgstr "__init__() doit retourner None, pas '%s'"
|
||||
|
||||
#~ msgid "can't convert %s to int"
|
||||
#~ msgstr "ne peut convertir %s en entier 'int'"
|
||||
|
||||
#~ msgid "can't convert NaN to int"
|
||||
#~ msgstr "on ne peut convertir NaN en entier 'int'"
|
||||
|
||||
#~ msgid "can't convert address to int"
|
||||
#~ msgstr "ne peut convertir l'adresse en entier 'int'"
|
||||
|
||||
#~ msgid "can't convert inf to int"
|
||||
#~ msgstr "on ne peut convertir l'infini 'inf' en entier 'int'"
|
||||
|
||||
#~ msgid "object '%s' is not a tuple or list"
|
||||
#~ msgstr "l'objet '%s' n'est pas un tuple ou une liste"
|
||||
|
||||
@ -5947,13 +5999,6 @@ msgstr "zi doit être de forme (n_section, 2)"
|
||||
#~ msgid "popitem(): dictionary is empty"
|
||||
#~ msgstr "popitem() : dictionnaire vide"
|
||||
|
||||
#~ msgid "string index out of range"
|
||||
#~ msgstr "index de chaîne hors gamme"
|
||||
|
||||
#~ msgid "string indices must be integers, not %s"
|
||||
#~ msgstr ""
|
||||
#~ "les indices de chaîne de caractères doivent être des entiers, pas %s"
|
||||
|
||||
#~ msgid "unknown format code '%c' for object of type '%s'"
|
||||
#~ msgstr "code de format '%c' inconnu pour un objet de type '%s'"
|
||||
|
||||
|
107
locale/hi.po
107
locale/hi.po
@ -139,7 +139,7 @@ msgstr ""
|
||||
msgid "%q in use"
|
||||
msgstr ""
|
||||
|
||||
#: py/objstr.c py/objstrunicode.c
|
||||
#: py/objstr.c
|
||||
msgid "%q index out of range"
|
||||
msgstr ""
|
||||
|
||||
@ -226,7 +226,7 @@ msgstr ""
|
||||
msgid "%q must be of type %q or %q, not %q"
|
||||
msgstr ""
|
||||
|
||||
#: py/argcheck.c py/objstrunicode.c shared-module/synthio/__init__.c
|
||||
#: py/argcheck.c shared-module/synthio/__init__.c
|
||||
msgid "%q must be of type %q, not %q"
|
||||
msgstr ""
|
||||
|
||||
@ -279,6 +279,11 @@ msgstr ""
|
||||
msgid "%q[%u] waits on input outside of count"
|
||||
msgstr ""
|
||||
|
||||
#: py/runtime.c
|
||||
#, c-format
|
||||
msgid "%s"
|
||||
msgstr ""
|
||||
|
||||
#: ports/espressif/common-hal/espidf/__init__.c
|
||||
#, c-format
|
||||
msgid "%s error 0x%x"
|
||||
@ -628,7 +633,7 @@ msgid "Below minimum frame rate"
|
||||
msgstr ""
|
||||
|
||||
#: ports/raspberrypi/common-hal/audiobusio/I2SOut.c
|
||||
msgid "Bit clock and word select must be sequential pins"
|
||||
msgid "Bit clock and word select must be sequential GPIO pins"
|
||||
msgstr ""
|
||||
|
||||
#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c
|
||||
@ -1100,8 +1105,6 @@ msgstr ""
|
||||
msgid "Generic Failure"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/displayio/Display.c
|
||||
#: shared-bindings/displayio/EPaperDisplay.c
|
||||
#: shared-bindings/framebufferio/FramebufferDisplay.c
|
||||
#: shared-module/displayio/Display.c
|
||||
#: shared-module/framebufferio/FramebufferDisplay.c
|
||||
@ -1956,10 +1959,6 @@ msgstr ""
|
||||
msgid "Specify exactly one of data0 or data_pins"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/modure.c
|
||||
msgid "Splitting with sub-captures"
|
||||
msgstr ""
|
||||
|
||||
#: ports/raspberrypi/common-hal/audiopwmio/PWMAudioOut.c
|
||||
msgid "Stereo left must be on PWM channel A"
|
||||
msgstr ""
|
||||
@ -2396,7 +2395,8 @@ msgid "__init__() should return None"
|
||||
msgstr ""
|
||||
|
||||
#: py/objtype.c
|
||||
msgid "__init__() should return None, not '%q'"
|
||||
#, c-format
|
||||
msgid "__init__() should return None, not '%s'"
|
||||
msgstr ""
|
||||
|
||||
#: py/objobject.c
|
||||
@ -2486,7 +2486,7 @@ msgid "attempt to get argmin/argmax of an empty sequence"
|
||||
msgstr ""
|
||||
|
||||
#: py/objstr.c
|
||||
msgid "attributes not supported yet"
|
||||
msgid "attributes not supported"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/ulab/code/ulab_tools.c
|
||||
@ -2614,7 +2614,7 @@ msgstr ""
|
||||
msgid "can't cancel self"
|
||||
msgstr ""
|
||||
|
||||
#: py/objint.c py/runtime.c shared-module/adafruit_pixelbuf/PixelBuf.c
|
||||
#: py/runtime.c shared-module/adafruit_pixelbuf/PixelBuf.c
|
||||
msgid "can't convert %q to %q"
|
||||
msgstr ""
|
||||
|
||||
@ -2632,10 +2632,18 @@ msgstr ""
|
||||
msgid "can't convert '%q' object to %q implicitly"
|
||||
msgstr ""
|
||||
|
||||
#: py/objint.c
|
||||
msgid "can't convert NaN to int"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/ulab/code/numpy/vector.c
|
||||
msgid "can't convert complex to float"
|
||||
msgstr ""
|
||||
|
||||
#: py/objint.c
|
||||
msgid "can't convert inf to int"
|
||||
msgstr ""
|
||||
|
||||
#: py/obj.c
|
||||
msgid "can't convert to complex"
|
||||
msgstr ""
|
||||
@ -2664,14 +2672,14 @@ msgstr ""
|
||||
msgid "can't do binary op between '%q' and '%q'"
|
||||
msgstr ""
|
||||
|
||||
#: py/objcomplex.c
|
||||
msgid "can't do truncated division of a complex number"
|
||||
msgstr ""
|
||||
|
||||
#: py/emitnative.c
|
||||
msgid "can't implicitly convert '%q' to 'bool'"
|
||||
msgstr ""
|
||||
|
||||
#: py/runtime.c
|
||||
msgid "can't import name %q"
|
||||
msgstr ""
|
||||
|
||||
#: py/emitnative.c
|
||||
msgid "can't load from '%q'"
|
||||
msgstr ""
|
||||
@ -2722,6 +2730,14 @@ msgid ""
|
||||
"can't switch from manual field specification to automatic field numbering"
|
||||
msgstr ""
|
||||
|
||||
#: py/objcomplex.c
|
||||
msgid "can't truncate-divide a complex number"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/moductypes.c
|
||||
msgid "can't unambiguously get sizeof scalar"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/moduasyncio.c
|
||||
msgid "can't wait"
|
||||
msgstr ""
|
||||
@ -2754,18 +2770,10 @@ msgstr ""
|
||||
msgid "cannot delete array elements"
|
||||
msgstr ""
|
||||
|
||||
#: py/runtime.c
|
||||
msgid "cannot import name %q"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/ulab/code/ndarray.c
|
||||
msgid "cannot reshape array"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/moductypes.c
|
||||
msgid "cannot unambiguously get sizeof scalar"
|
||||
msgstr ""
|
||||
|
||||
#: py/emitnative.c
|
||||
msgid "casting"
|
||||
msgstr ""
|
||||
@ -2814,6 +2822,10 @@ msgstr ""
|
||||
msgid "comparison of int and uint"
|
||||
msgstr ""
|
||||
|
||||
#: py/objcomplex.c
|
||||
msgid "complex divide by zero"
|
||||
msgstr ""
|
||||
|
||||
#: py/objfloat.c py/parsenum.c
|
||||
msgid "complex values not supported"
|
||||
msgstr ""
|
||||
@ -3386,7 +3398,7 @@ msgid "join expects a list of str/bytes objects consistent with self object"
|
||||
msgstr ""
|
||||
|
||||
#: py/argcheck.c
|
||||
msgid "keyword argument(s) not yet implemented - use normal args instead"
|
||||
msgid "keyword argument(s) not implemented - use normal args instead"
|
||||
msgstr ""
|
||||
|
||||
#: py/emitinlinethumb.c py/emitinlinextensa.c
|
||||
@ -3397,10 +3409,6 @@ msgstr ""
|
||||
msgid "label redefined"
|
||||
msgstr ""
|
||||
|
||||
#: py/stream.c
|
||||
msgid "length argument not allowed for this type"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/audiomixer/MixerVoice.c
|
||||
msgid "level must be between 0 and 1"
|
||||
msgstr ""
|
||||
@ -3487,6 +3495,10 @@ msgstr ""
|
||||
msgid "memory allocation failed, heap is locked"
|
||||
msgstr ""
|
||||
|
||||
#: py/objarray.c
|
||||
msgid "memoryview offset too large"
|
||||
msgstr ""
|
||||
|
||||
#: py/objarray.c
|
||||
msgid "memoryview: length is not a multiple of itemsize"
|
||||
msgstr ""
|
||||
@ -3535,6 +3547,10 @@ msgstr ""
|
||||
msgid "name not defined"
|
||||
msgstr ""
|
||||
|
||||
#: py/persistentcode.c
|
||||
msgid "native code in .mpy unsupported"
|
||||
msgstr ""
|
||||
|
||||
#: py/asmthumb.c
|
||||
msgid "native method too big"
|
||||
msgstr ""
|
||||
@ -3609,7 +3625,7 @@ msgstr ""
|
||||
msgid "non-default argument follows default argument"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/modubinascii.c
|
||||
#: py/objstr.c
|
||||
msgid "non-hex digit found"
|
||||
msgstr ""
|
||||
|
||||
@ -3699,7 +3715,7 @@ msgstr ""
|
||||
msgid "object with buffer protocol required"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/modubinascii.c
|
||||
#: py/objstr.c
|
||||
msgid "odd-length string"
|
||||
msgstr ""
|
||||
|
||||
@ -3719,10 +3735,6 @@ msgstr ""
|
||||
msgid "offset must be non-negative and no greater than buffer length"
|
||||
msgstr ""
|
||||
|
||||
#: py/objstr.c py/objstrunicode.c
|
||||
msgid "offset out of bounds"
|
||||
msgstr ""
|
||||
|
||||
#: ports/nrf/common-hal/audiobusio/PDMIn.c
|
||||
#: ports/stm/common-hal/audiobusio/PDMIn.c
|
||||
msgid "only bit_depth=16 is supported"
|
||||
@ -3971,10 +3983,6 @@ msgstr ""
|
||||
msgid "sleep length must be non-negative"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/ulab/code/ndarray.c
|
||||
msgid "slice step can't be zero"
|
||||
msgstr ""
|
||||
|
||||
#: py/nativeglue.c
|
||||
msgid "slice unsupported"
|
||||
msgstr ""
|
||||
@ -4019,6 +4027,10 @@ msgstr ""
|
||||
msgid "source_bitmap must have value_count of 8"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/modure.c
|
||||
msgid "splitting with sub-captures"
|
||||
msgstr ""
|
||||
|
||||
#: py/objstr.c
|
||||
msgid "start/end indices"
|
||||
msgstr ""
|
||||
@ -4031,8 +4043,17 @@ msgstr ""
|
||||
msgid "stream operation not supported"
|
||||
msgstr ""
|
||||
|
||||
#: py/stream.c
|
||||
msgid "string not supported; use bytes or bytearray"
|
||||
#: py/objarray.c py/objstr.c
|
||||
msgid "string argument without an encoding"
|
||||
msgstr ""
|
||||
|
||||
#: py/objstrunicode.c
|
||||
msgid "string index out of range"
|
||||
msgstr ""
|
||||
|
||||
#: py/objstrunicode.c
|
||||
#, c-format
|
||||
msgid "string indices must be integers, not %s"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/moductypes.c
|
||||
@ -4063,6 +4084,10 @@ msgstr ""
|
||||
msgid "syntax error in uctypes descriptor"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/utime_mphal.c
|
||||
msgid "ticks interval overflow"
|
||||
msgstr ""
|
||||
|
||||
#: ports/nrf/common-hal/watchdog/WatchDogTimer.c
|
||||
msgid "timeout duration exceeded the maximum supported value"
|
||||
msgstr ""
|
||||
|
150
locale/it_IT.po
150
locale/it_IT.po
@ -143,7 +143,7 @@ msgstr ""
|
||||
msgid "%q in use"
|
||||
msgstr "%q in uso"
|
||||
|
||||
#: py/objstr.c py/objstrunicode.c
|
||||
#: py/objstr.c
|
||||
msgid "%q index out of range"
|
||||
msgstr "indice %q fuori intervallo"
|
||||
|
||||
@ -230,7 +230,7 @@ msgstr ""
|
||||
msgid "%q must be of type %q or %q, not %q"
|
||||
msgstr ""
|
||||
|
||||
#: py/argcheck.c py/objstrunicode.c shared-module/synthio/__init__.c
|
||||
#: py/argcheck.c shared-module/synthio/__init__.c
|
||||
msgid "%q must be of type %q, not %q"
|
||||
msgstr ""
|
||||
|
||||
@ -283,6 +283,11 @@ msgstr ""
|
||||
msgid "%q[%u] waits on input outside of count"
|
||||
msgstr ""
|
||||
|
||||
#: py/runtime.c
|
||||
#, c-format
|
||||
msgid "%s"
|
||||
msgstr ""
|
||||
|
||||
#: ports/espressif/common-hal/espidf/__init__.c
|
||||
#, c-format
|
||||
msgid "%s error 0x%x"
|
||||
@ -636,7 +641,7 @@ msgid "Below minimum frame rate"
|
||||
msgstr "Al di sotto del frame rate minimo"
|
||||
|
||||
#: ports/raspberrypi/common-hal/audiobusio/I2SOut.c
|
||||
msgid "Bit clock and word select must be sequential pins"
|
||||
msgid "Bit clock and word select must be sequential GPIO pins"
|
||||
msgstr ""
|
||||
|
||||
#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c
|
||||
@ -1112,8 +1117,6 @@ msgstr ""
|
||||
msgid "Generic Failure"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/displayio/Display.c
|
||||
#: shared-bindings/displayio/EPaperDisplay.c
|
||||
#: shared-bindings/framebufferio/FramebufferDisplay.c
|
||||
#: shared-module/displayio/Display.c
|
||||
#: shared-module/framebufferio/FramebufferDisplay.c
|
||||
@ -1977,10 +1980,6 @@ msgstr ""
|
||||
msgid "Specify exactly one of data0 or data_pins"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/modure.c
|
||||
msgid "Splitting with sub-captures"
|
||||
msgstr "Suddivisione con sotto-catture"
|
||||
|
||||
#: ports/raspberrypi/common-hal/audiopwmio/PWMAudioOut.c
|
||||
msgid "Stereo left must be on PWM channel A"
|
||||
msgstr ""
|
||||
@ -2419,8 +2418,9 @@ msgid "__init__() should return None"
|
||||
msgstr "__init__() deve ritornare None"
|
||||
|
||||
#: py/objtype.c
|
||||
msgid "__init__() should return None, not '%q'"
|
||||
msgstr ""
|
||||
#, c-format
|
||||
msgid "__init__() should return None, not '%s'"
|
||||
msgstr "__init__() deve ritornare None, non '%s'"
|
||||
|
||||
#: py/objobject.c
|
||||
msgid "__new__ arg must be a user-type"
|
||||
@ -2509,8 +2509,8 @@ msgid "attempt to get argmin/argmax of an empty sequence"
|
||||
msgstr ""
|
||||
|
||||
#: py/objstr.c
|
||||
msgid "attributes not supported yet"
|
||||
msgstr "attributi non ancora supportati"
|
||||
msgid "attributes not supported"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/ulab/code/ulab_tools.c
|
||||
msgid "axis is out of bounds"
|
||||
@ -2641,7 +2641,7 @@ msgstr "impossibile assegnare all'espressione"
|
||||
msgid "can't cancel self"
|
||||
msgstr ""
|
||||
|
||||
#: py/objint.c py/runtime.c shared-module/adafruit_pixelbuf/PixelBuf.c
|
||||
#: py/runtime.c shared-module/adafruit_pixelbuf/PixelBuf.c
|
||||
msgid "can't convert %q to %q"
|
||||
msgstr ""
|
||||
|
||||
@ -2659,10 +2659,18 @@ msgstr "non è possibile convertire %s a float"
|
||||
msgid "can't convert '%q' object to %q implicitly"
|
||||
msgstr "impossibile convertire l'oggetto '%q' implicitamente in %q"
|
||||
|
||||
#: py/objint.c
|
||||
msgid "can't convert NaN to int"
|
||||
msgstr "impossibile convertire NaN in int"
|
||||
|
||||
#: extmod/ulab/code/numpy/vector.c
|
||||
msgid "can't convert complex to float"
|
||||
msgstr ""
|
||||
|
||||
#: py/objint.c
|
||||
msgid "can't convert inf to int"
|
||||
msgstr "impossibile convertire inf in int"
|
||||
|
||||
#: py/obj.c
|
||||
msgid "can't convert to complex"
|
||||
msgstr "non è possibile convertire a complex"
|
||||
@ -2691,14 +2699,14 @@ msgstr "impossibile cancellare l'espessione"
|
||||
msgid "can't do binary op between '%q' and '%q'"
|
||||
msgstr "impossibile eseguire operazione binaria tra '%q' e '%q'"
|
||||
|
||||
#: py/objcomplex.c
|
||||
msgid "can't do truncated division of a complex number"
|
||||
msgstr "impossibile fare il modulo di un numero complesso"
|
||||
|
||||
#: py/emitnative.c
|
||||
msgid "can't implicitly convert '%q' to 'bool'"
|
||||
msgstr "non è possibile convertire implicitamente '%q' in 'bool'"
|
||||
|
||||
#: py/runtime.c
|
||||
msgid "can't import name %q"
|
||||
msgstr ""
|
||||
|
||||
#: py/emitnative.c
|
||||
msgid "can't load from '%q'"
|
||||
msgstr "impossibile caricare da '%q'"
|
||||
@ -2749,6 +2757,14 @@ msgid ""
|
||||
"can't switch from manual field specification to automatic field numbering"
|
||||
msgstr ""
|
||||
|
||||
#: py/objcomplex.c
|
||||
msgid "can't truncate-divide a complex number"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/moductypes.c
|
||||
msgid "can't unambiguously get sizeof scalar"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/moduasyncio.c
|
||||
msgid "can't wait"
|
||||
msgstr ""
|
||||
@ -2781,18 +2797,10 @@ msgstr "impossibile creare un istanza"
|
||||
msgid "cannot delete array elements"
|
||||
msgstr ""
|
||||
|
||||
#: py/runtime.c
|
||||
msgid "cannot import name %q"
|
||||
msgstr "impossibile imporate il nome %q"
|
||||
|
||||
#: extmod/ulab/code/ndarray.c
|
||||
msgid "cannot reshape array"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/moductypes.c
|
||||
msgid "cannot unambiguously get sizeof scalar"
|
||||
msgstr ""
|
||||
|
||||
#: py/emitnative.c
|
||||
msgid "casting"
|
||||
msgstr "casting"
|
||||
@ -2843,6 +2851,10 @@ msgstr "il colore deve essere compreso tra 0x000000 e 0xffffff"
|
||||
msgid "comparison of int and uint"
|
||||
msgstr ""
|
||||
|
||||
#: py/objcomplex.c
|
||||
msgid "complex divide by zero"
|
||||
msgstr ""
|
||||
|
||||
#: py/objfloat.c py/parsenum.c
|
||||
msgid "complex values not supported"
|
||||
msgstr "valori complessi non supportai"
|
||||
@ -3422,10 +3434,8 @@ msgstr ""
|
||||
"join prende una lista di oggetti str/byte consistenti con l'oggetto stesso"
|
||||
|
||||
#: py/argcheck.c
|
||||
msgid "keyword argument(s) not yet implemented - use normal args instead"
|
||||
msgid "keyword argument(s) not implemented - use normal args instead"
|
||||
msgstr ""
|
||||
"argomento(i) nominati non ancora implementati - usare invece argomenti "
|
||||
"normali"
|
||||
|
||||
#: py/emitinlinethumb.c py/emitinlinextensa.c
|
||||
msgid "label '%q' not defined"
|
||||
@ -3435,10 +3445,6 @@ msgstr "etichetta '%q' non definita"
|
||||
msgid "label redefined"
|
||||
msgstr "etichetta ridefinita"
|
||||
|
||||
#: py/stream.c
|
||||
msgid "length argument not allowed for this type"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/audiomixer/MixerVoice.c
|
||||
msgid "level must be between 0 and 1"
|
||||
msgstr ""
|
||||
@ -3525,6 +3531,10 @@ msgstr "allocazione di memoria fallita, allocando %u byte"
|
||||
msgid "memory allocation failed, heap is locked"
|
||||
msgstr "allocazione di memoria fallita, l'heap è bloccato"
|
||||
|
||||
#: py/objarray.c
|
||||
msgid "memoryview offset too large"
|
||||
msgstr ""
|
||||
|
||||
#: py/objarray.c
|
||||
msgid "memoryview: length is not a multiple of itemsize"
|
||||
msgstr ""
|
||||
@ -3573,6 +3583,10 @@ msgstr "nome '%q'non definito"
|
||||
msgid "name not defined"
|
||||
msgstr "nome non definito"
|
||||
|
||||
#: py/persistentcode.c
|
||||
msgid "native code in .mpy unsupported"
|
||||
msgstr ""
|
||||
|
||||
#: py/asmthumb.c
|
||||
msgid "native method too big"
|
||||
msgstr ""
|
||||
@ -3647,7 +3661,7 @@ msgstr ""
|
||||
msgid "non-default argument follows default argument"
|
||||
msgstr "argomento non predefinito segue argmoento predfinito"
|
||||
|
||||
#: extmod/modubinascii.c
|
||||
#: py/objstr.c
|
||||
msgid "non-hex digit found"
|
||||
msgstr "trovata cifra non esadecimale"
|
||||
|
||||
@ -3739,7 +3753,7 @@ msgstr "l'oggetto di tipo '%s' non implementa len()"
|
||||
msgid "object with buffer protocol required"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/modubinascii.c
|
||||
#: py/objstr.c
|
||||
msgid "odd-length string"
|
||||
msgstr "stringa di lunghezza dispari"
|
||||
|
||||
@ -3759,11 +3773,6 @@ msgstr ""
|
||||
msgid "offset must be non-negative and no greater than buffer length"
|
||||
msgstr ""
|
||||
|
||||
#: py/objstr.c py/objstrunicode.c
|
||||
#, fuzzy
|
||||
msgid "offset out of bounds"
|
||||
msgstr "indirizzo fuori limite"
|
||||
|
||||
#: ports/nrf/common-hal/audiobusio/PDMIn.c
|
||||
#: ports/stm/common-hal/audiobusio/PDMIn.c
|
||||
msgid "only bit_depth=16 is supported"
|
||||
@ -4015,10 +4024,6 @@ msgstr ""
|
||||
msgid "sleep length must be non-negative"
|
||||
msgstr "la lunghezza di sleed deve essere non negativa"
|
||||
|
||||
#: extmod/ulab/code/ndarray.c
|
||||
msgid "slice step can't be zero"
|
||||
msgstr ""
|
||||
|
||||
#: py/nativeglue.c
|
||||
msgid "slice unsupported"
|
||||
msgstr ""
|
||||
@ -4063,6 +4068,10 @@ msgstr ""
|
||||
msgid "source_bitmap must have value_count of 8"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/modure.c
|
||||
msgid "splitting with sub-captures"
|
||||
msgstr ""
|
||||
|
||||
#: py/objstr.c
|
||||
msgid "start/end indices"
|
||||
msgstr ""
|
||||
@ -4075,10 +4084,19 @@ msgstr "stop non raggiungibile dall'inizio"
|
||||
msgid "stream operation not supported"
|
||||
msgstr "operazione di stream non supportata"
|
||||
|
||||
#: py/stream.c
|
||||
msgid "string not supported; use bytes or bytearray"
|
||||
#: py/objarray.c py/objstr.c
|
||||
msgid "string argument without an encoding"
|
||||
msgstr ""
|
||||
|
||||
#: py/objstrunicode.c
|
||||
msgid "string index out of range"
|
||||
msgstr "indice della stringa fuori intervallo"
|
||||
|
||||
#: py/objstrunicode.c
|
||||
#, c-format
|
||||
msgid "string indices must be integers, not %s"
|
||||
msgstr "indici della stringa devono essere interi, non %s"
|
||||
|
||||
#: extmod/moductypes.c
|
||||
msgid "struct: can't index"
|
||||
msgstr ""
|
||||
@ -4107,6 +4125,10 @@ msgstr "errore di sintassi nel JSON"
|
||||
msgid "syntax error in uctypes descriptor"
|
||||
msgstr "errore di sintassi nel descrittore uctypes"
|
||||
|
||||
#: extmod/utime_mphal.c
|
||||
msgid "ticks interval overflow"
|
||||
msgstr ""
|
||||
|
||||
#: ports/nrf/common-hal/watchdog/WatchDogTimer.c
|
||||
msgid "timeout duration exceeded the maximum supported value"
|
||||
msgstr ""
|
||||
@ -4380,6 +4402,27 @@ msgstr ""
|
||||
msgid "zi must be of shape (n_section, 2)"
|
||||
msgstr ""
|
||||
|
||||
#~ msgid "Splitting with sub-captures"
|
||||
#~ msgstr "Suddivisione con sotto-catture"
|
||||
|
||||
#~ msgid "attributes not supported yet"
|
||||
#~ msgstr "attributi non ancora supportati"
|
||||
|
||||
#~ msgid "can't do truncated division of a complex number"
|
||||
#~ msgstr "impossibile fare il modulo di un numero complesso"
|
||||
|
||||
#~ msgid "cannot import name %q"
|
||||
#~ msgstr "impossibile imporate il nome %q"
|
||||
|
||||
#~ msgid "keyword argument(s) not yet implemented - use normal args instead"
|
||||
#~ msgstr ""
|
||||
#~ "argomento(i) nominati non ancora implementati - usare invece argomenti "
|
||||
#~ "normali"
|
||||
|
||||
#, fuzzy
|
||||
#~ msgid "offset out of bounds"
|
||||
#~ msgstr "indirizzo fuori limite"
|
||||
|
||||
#~ msgid "ADC2 is being used by WiFi"
|
||||
#~ msgstr "ADC2 sta usando il WiFi"
|
||||
|
||||
@ -4874,21 +4917,12 @@ msgstr ""
|
||||
#~ msgid "Running in safe mode! Auto-reload is off.\n"
|
||||
#~ msgstr "Modalità sicura in esecuzione! Auto-reload disattivato.\n"
|
||||
|
||||
#~ msgid "__init__() should return None, not '%s'"
|
||||
#~ msgstr "__init__() deve ritornare None, non '%s'"
|
||||
|
||||
#~ msgid "can't convert %s to int"
|
||||
#~ msgstr "non è possibile convertire %s a int"
|
||||
|
||||
#~ msgid "can't convert NaN to int"
|
||||
#~ msgstr "impossibile convertire NaN in int"
|
||||
|
||||
#~ msgid "can't convert address to int"
|
||||
#~ msgstr "impossible convertire indirizzo in int"
|
||||
|
||||
#~ msgid "can't convert inf to int"
|
||||
#~ msgstr "impossibile convertire inf in int"
|
||||
|
||||
#~ msgid "object '%s' is not a tuple or list"
|
||||
#~ msgstr "oggetto '%s' non è una tupla o una lista"
|
||||
|
||||
@ -4901,12 +4935,6 @@ msgstr ""
|
||||
#~ msgid "popitem(): dictionary is empty"
|
||||
#~ msgstr "popitem(): il dizionario è vuoto"
|
||||
|
||||
#~ msgid "string index out of range"
|
||||
#~ msgstr "indice della stringa fuori intervallo"
|
||||
|
||||
#~ msgid "string indices must be integers, not %s"
|
||||
#~ msgstr "indici della stringa devono essere interi, non %s"
|
||||
|
||||
#~ msgid "unknown format code '%c' for object of type '%s'"
|
||||
#~ msgstr "codice di formattaione '%c' sconosciuto per oggetto di tipo '%s'"
|
||||
|
||||
|
128
locale/ja.po
128
locale/ja.po
@ -146,7 +146,7 @@ msgstr ""
|
||||
msgid "%q in use"
|
||||
msgstr "%qは使用中"
|
||||
|
||||
#: py/objstr.c py/objstrunicode.c
|
||||
#: py/objstr.c
|
||||
msgid "%q index out of range"
|
||||
msgstr "%q インデックスは範囲外"
|
||||
|
||||
@ -233,7 +233,7 @@ msgstr ""
|
||||
msgid "%q must be of type %q or %q, not %q"
|
||||
msgstr ""
|
||||
|
||||
#: py/argcheck.c py/objstrunicode.c shared-module/synthio/__init__.c
|
||||
#: py/argcheck.c shared-module/synthio/__init__.c
|
||||
msgid "%q must be of type %q, not %q"
|
||||
msgstr ""
|
||||
|
||||
@ -286,6 +286,11 @@ msgstr ""
|
||||
msgid "%q[%u] waits on input outside of count"
|
||||
msgstr ""
|
||||
|
||||
#: py/runtime.c
|
||||
#, c-format
|
||||
msgid "%s"
|
||||
msgstr ""
|
||||
|
||||
#: ports/espressif/common-hal/espidf/__init__.c
|
||||
#, c-format
|
||||
msgid "%s error 0x%x"
|
||||
@ -637,7 +642,7 @@ msgid "Below minimum frame rate"
|
||||
msgstr "最低のフレームレート未満"
|
||||
|
||||
#: ports/raspberrypi/common-hal/audiobusio/I2SOut.c
|
||||
msgid "Bit clock and word select must be sequential pins"
|
||||
msgid "Bit clock and word select must be sequential GPIO pins"
|
||||
msgstr ""
|
||||
|
||||
#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c
|
||||
@ -1111,8 +1116,6 @@ msgstr ""
|
||||
msgid "Generic Failure"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/displayio/Display.c
|
||||
#: shared-bindings/displayio/EPaperDisplay.c
|
||||
#: shared-bindings/framebufferio/FramebufferDisplay.c
|
||||
#: shared-module/displayio/Display.c
|
||||
#: shared-module/framebufferio/FramebufferDisplay.c
|
||||
@ -1970,10 +1973,6 @@ msgstr "バッファ (元/先) は同じ長さでなければなりません"
|
||||
msgid "Specify exactly one of data0 or data_pins"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/modure.c
|
||||
msgid "Splitting with sub-captures"
|
||||
msgstr ""
|
||||
|
||||
#: ports/raspberrypi/common-hal/audiopwmio/PWMAudioOut.c
|
||||
msgid "Stereo left must be on PWM channel A"
|
||||
msgstr ""
|
||||
@ -2411,7 +2410,8 @@ msgid "__init__() should return None"
|
||||
msgstr ""
|
||||
|
||||
#: py/objtype.c
|
||||
msgid "__init__() should return None, not '%q'"
|
||||
#, c-format
|
||||
msgid "__init__() should return None, not '%s'"
|
||||
msgstr ""
|
||||
|
||||
#: py/objobject.c
|
||||
@ -2501,8 +2501,8 @@ msgid "attempt to get argmin/argmax of an empty sequence"
|
||||
msgstr ""
|
||||
|
||||
#: py/objstr.c
|
||||
msgid "attributes not supported yet"
|
||||
msgstr "属性は未対応です"
|
||||
msgid "attributes not supported"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/ulab/code/ulab_tools.c
|
||||
msgid "axis is out of bounds"
|
||||
@ -2629,7 +2629,7 @@ msgstr "式には代入できません"
|
||||
msgid "can't cancel self"
|
||||
msgstr ""
|
||||
|
||||
#: py/objint.c py/runtime.c shared-module/adafruit_pixelbuf/PixelBuf.c
|
||||
#: py/runtime.c shared-module/adafruit_pixelbuf/PixelBuf.c
|
||||
msgid "can't convert %q to %q"
|
||||
msgstr "%qを%qに変換できません"
|
||||
|
||||
@ -2647,10 +2647,18 @@ msgstr ""
|
||||
msgid "can't convert '%q' object to %q implicitly"
|
||||
msgstr "オブジェクト '%q' を %q に暗黙に変換できません"
|
||||
|
||||
#: py/objint.c
|
||||
msgid "can't convert NaN to int"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/ulab/code/numpy/vector.c
|
||||
msgid "can't convert complex to float"
|
||||
msgstr ""
|
||||
|
||||
#: py/objint.c
|
||||
msgid "can't convert inf to int"
|
||||
msgstr ""
|
||||
|
||||
#: py/obj.c
|
||||
msgid "can't convert to complex"
|
||||
msgstr ""
|
||||
@ -2679,14 +2687,14 @@ msgstr ""
|
||||
msgid "can't do binary op between '%q' and '%q'"
|
||||
msgstr ""
|
||||
|
||||
#: py/objcomplex.c
|
||||
msgid "can't do truncated division of a complex number"
|
||||
msgstr "複素数の切り捨て除算はできません"
|
||||
|
||||
#: py/emitnative.c
|
||||
msgid "can't implicitly convert '%q' to 'bool'"
|
||||
msgstr ""
|
||||
|
||||
#: py/runtime.c
|
||||
msgid "can't import name %q"
|
||||
msgstr ""
|
||||
|
||||
#: py/emitnative.c
|
||||
msgid "can't load from '%q'"
|
||||
msgstr ""
|
||||
@ -2737,6 +2745,14 @@ msgid ""
|
||||
"can't switch from manual field specification to automatic field numbering"
|
||||
msgstr "手動と自動のフィールド指定は混在できません"
|
||||
|
||||
#: py/objcomplex.c
|
||||
msgid "can't truncate-divide a complex number"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/moductypes.c
|
||||
msgid "can't unambiguously get sizeof scalar"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/moduasyncio.c
|
||||
msgid "can't wait"
|
||||
msgstr ""
|
||||
@ -2769,18 +2785,10 @@ msgstr "インスタンスを作れません"
|
||||
msgid "cannot delete array elements"
|
||||
msgstr ""
|
||||
|
||||
#: py/runtime.c
|
||||
msgid "cannot import name %q"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/ulab/code/ndarray.c
|
||||
msgid "cannot reshape array"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/moductypes.c
|
||||
msgid "cannot unambiguously get sizeof scalar"
|
||||
msgstr ""
|
||||
|
||||
#: py/emitnative.c
|
||||
msgid "casting"
|
||||
msgstr ""
|
||||
@ -2831,6 +2839,10 @@ msgstr "色は0x000000から0xffffffでなければなりません"
|
||||
msgid "comparison of int and uint"
|
||||
msgstr ""
|
||||
|
||||
#: py/objcomplex.c
|
||||
msgid "complex divide by zero"
|
||||
msgstr ""
|
||||
|
||||
#: py/objfloat.c py/parsenum.c
|
||||
msgid "complex values not supported"
|
||||
msgstr ""
|
||||
@ -3406,8 +3418,8 @@ msgid "join expects a list of str/bytes objects consistent with self object"
|
||||
msgstr "joinには str/bytes (のうち自身と一致した型の) リストが必要"
|
||||
|
||||
#: py/argcheck.c
|
||||
msgid "keyword argument(s) not yet implemented - use normal args instead"
|
||||
msgstr "キーワード引数は未実装。通常の引数を使ってください"
|
||||
msgid "keyword argument(s) not implemented - use normal args instead"
|
||||
msgstr ""
|
||||
|
||||
#: py/emitinlinethumb.c py/emitinlinextensa.c
|
||||
msgid "label '%q' not defined"
|
||||
@ -3417,10 +3429,6 @@ msgstr "ラベル'%q'は定義されていません"
|
||||
msgid "label redefined"
|
||||
msgstr "ラベルの再定義"
|
||||
|
||||
#: py/stream.c
|
||||
msgid "length argument not allowed for this type"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/audiomixer/MixerVoice.c
|
||||
msgid "level must be between 0 and 1"
|
||||
msgstr "levelは0から1の間でなければなりません"
|
||||
@ -3507,6 +3515,10 @@ msgstr ""
|
||||
msgid "memory allocation failed, heap is locked"
|
||||
msgstr "メモリ確保に失敗。ヒープがロックされています"
|
||||
|
||||
#: py/objarray.c
|
||||
msgid "memoryview offset too large"
|
||||
msgstr ""
|
||||
|
||||
#: py/objarray.c
|
||||
msgid "memoryview: length is not a multiple of itemsize"
|
||||
msgstr ""
|
||||
@ -3555,6 +3567,10 @@ msgstr "名前 '%q' は定義されていません"
|
||||
msgid "name not defined"
|
||||
msgstr "名前が定義されていません"
|
||||
|
||||
#: py/persistentcode.c
|
||||
msgid "native code in .mpy unsupported"
|
||||
msgstr ""
|
||||
|
||||
#: py/asmthumb.c
|
||||
msgid "native method too big"
|
||||
msgstr ""
|
||||
@ -3629,7 +3645,7 @@ msgstr ""
|
||||
msgid "non-default argument follows default argument"
|
||||
msgstr "デフォルト引数の後に通常の引数は置けません"
|
||||
|
||||
#: extmod/modubinascii.c
|
||||
#: py/objstr.c
|
||||
msgid "non-hex digit found"
|
||||
msgstr "16進数以外の桁があります"
|
||||
|
||||
@ -3719,7 +3735,7 @@ msgstr ""
|
||||
msgid "object with buffer protocol required"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/modubinascii.c
|
||||
#: py/objstr.c
|
||||
msgid "odd-length string"
|
||||
msgstr "奇数長の文字列"
|
||||
|
||||
@ -3739,10 +3755,6 @@ msgstr ""
|
||||
msgid "offset must be non-negative and no greater than buffer length"
|
||||
msgstr ""
|
||||
|
||||
#: py/objstr.c py/objstrunicode.c
|
||||
msgid "offset out of bounds"
|
||||
msgstr ""
|
||||
|
||||
#: ports/nrf/common-hal/audiobusio/PDMIn.c
|
||||
#: ports/stm/common-hal/audiobusio/PDMIn.c
|
||||
msgid "only bit_depth=16 is supported"
|
||||
@ -3991,10 +4003,6 @@ msgstr ""
|
||||
msgid "sleep length must be non-negative"
|
||||
msgstr "sleepの長さは非負数でなければなりません"
|
||||
|
||||
#: extmod/ulab/code/ndarray.c
|
||||
msgid "slice step can't be zero"
|
||||
msgstr "スライスのステップは0にできません"
|
||||
|
||||
#: py/nativeglue.c
|
||||
msgid "slice unsupported"
|
||||
msgstr ""
|
||||
@ -4039,6 +4047,10 @@ msgstr ""
|
||||
msgid "source_bitmap must have value_count of 8"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/modure.c
|
||||
msgid "splitting with sub-captures"
|
||||
msgstr ""
|
||||
|
||||
#: py/objstr.c
|
||||
msgid "start/end indices"
|
||||
msgstr ""
|
||||
@ -4051,9 +4063,18 @@ msgstr ""
|
||||
msgid "stream operation not supported"
|
||||
msgstr "ストリーム操作は非対応"
|
||||
|
||||
#: py/stream.c
|
||||
msgid "string not supported; use bytes or bytearray"
|
||||
msgstr "文字列ではなくbytesまたはbytesarrayが必要"
|
||||
#: py/objarray.c py/objstr.c
|
||||
msgid "string argument without an encoding"
|
||||
msgstr ""
|
||||
|
||||
#: py/objstrunicode.c
|
||||
msgid "string index out of range"
|
||||
msgstr ""
|
||||
|
||||
#: py/objstrunicode.c
|
||||
#, c-format
|
||||
msgid "string indices must be integers, not %s"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/moductypes.c
|
||||
msgid "struct: can't index"
|
||||
@ -4083,6 +4104,10 @@ msgstr "JSONに構文エラーがあります"
|
||||
msgid "syntax error in uctypes descriptor"
|
||||
msgstr "uctypedディスクリプタの構文エラー"
|
||||
|
||||
#: extmod/utime_mphal.c
|
||||
msgid "ticks interval overflow"
|
||||
msgstr ""
|
||||
|
||||
#: ports/nrf/common-hal/watchdog/WatchDogTimer.c
|
||||
msgid "timeout duration exceeded the maximum supported value"
|
||||
msgstr "タイムアウト長は対応する最大値を超えています"
|
||||
@ -4356,6 +4381,21 @@ msgstr "ziはfloat値でなければなりません"
|
||||
msgid "zi must be of shape (n_section, 2)"
|
||||
msgstr ""
|
||||
|
||||
#~ msgid "attributes not supported yet"
|
||||
#~ msgstr "属性は未対応です"
|
||||
|
||||
#~ msgid "can't do truncated division of a complex number"
|
||||
#~ msgstr "複素数の切り捨て除算はできません"
|
||||
|
||||
#~ msgid "keyword argument(s) not yet implemented - use normal args instead"
|
||||
#~ msgstr "キーワード引数は未実装。通常の引数を使ってください"
|
||||
|
||||
#~ msgid "slice step can't be zero"
|
||||
#~ msgstr "スライスのステップは0にできません"
|
||||
|
||||
#~ msgid "string not supported; use bytes or bytearray"
|
||||
#~ msgstr "文字列ではなくbytesまたはbytesarrayが必要"
|
||||
|
||||
#~ msgid "WatchDogTimer is not currently running"
|
||||
#~ msgstr "WatchDogTimerは現在動作していません"
|
||||
|
||||
|
107
locale/ko.po
107
locale/ko.po
@ -140,7 +140,7 @@ msgstr ""
|
||||
msgid "%q in use"
|
||||
msgstr "%q 사용 중입니다"
|
||||
|
||||
#: py/objstr.c py/objstrunicode.c
|
||||
#: py/objstr.c
|
||||
msgid "%q index out of range"
|
||||
msgstr "%q 인덱스 범위를 벗어났습니다"
|
||||
|
||||
@ -227,7 +227,7 @@ msgstr ""
|
||||
msgid "%q must be of type %q or %q, not %q"
|
||||
msgstr ""
|
||||
|
||||
#: py/argcheck.c py/objstrunicode.c shared-module/synthio/__init__.c
|
||||
#: py/argcheck.c shared-module/synthio/__init__.c
|
||||
msgid "%q must be of type %q, not %q"
|
||||
msgstr ""
|
||||
|
||||
@ -280,6 +280,11 @@ msgstr ""
|
||||
msgid "%q[%u] waits on input outside of count"
|
||||
msgstr ""
|
||||
|
||||
#: py/runtime.c
|
||||
#, c-format
|
||||
msgid "%s"
|
||||
msgstr ""
|
||||
|
||||
#: ports/espressif/common-hal/espidf/__init__.c
|
||||
#, c-format
|
||||
msgid "%s error 0x%x"
|
||||
@ -631,7 +636,7 @@ msgid "Below minimum frame rate"
|
||||
msgstr ""
|
||||
|
||||
#: ports/raspberrypi/common-hal/audiobusio/I2SOut.c
|
||||
msgid "Bit clock and word select must be sequential pins"
|
||||
msgid "Bit clock and word select must be sequential GPIO pins"
|
||||
msgstr ""
|
||||
|
||||
#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c
|
||||
@ -1103,8 +1108,6 @@ msgstr ""
|
||||
msgid "Generic Failure"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/displayio/Display.c
|
||||
#: shared-bindings/displayio/EPaperDisplay.c
|
||||
#: shared-bindings/framebufferio/FramebufferDisplay.c
|
||||
#: shared-module/displayio/Display.c
|
||||
#: shared-module/framebufferio/FramebufferDisplay.c
|
||||
@ -1959,10 +1962,6 @@ msgstr ""
|
||||
msgid "Specify exactly one of data0 or data_pins"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/modure.c
|
||||
msgid "Splitting with sub-captures"
|
||||
msgstr ""
|
||||
|
||||
#: ports/raspberrypi/common-hal/audiopwmio/PWMAudioOut.c
|
||||
msgid "Stereo left must be on PWM channel A"
|
||||
msgstr ""
|
||||
@ -2400,7 +2399,8 @@ msgid "__init__() should return None"
|
||||
msgstr ""
|
||||
|
||||
#: py/objtype.c
|
||||
msgid "__init__() should return None, not '%q'"
|
||||
#, c-format
|
||||
msgid "__init__() should return None, not '%s'"
|
||||
msgstr ""
|
||||
|
||||
#: py/objobject.c
|
||||
@ -2490,7 +2490,7 @@ msgid "attempt to get argmin/argmax of an empty sequence"
|
||||
msgstr ""
|
||||
|
||||
#: py/objstr.c
|
||||
msgid "attributes not supported yet"
|
||||
msgid "attributes not supported"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/ulab/code/ulab_tools.c
|
||||
@ -2618,7 +2618,7 @@ msgstr ""
|
||||
msgid "can't cancel self"
|
||||
msgstr ""
|
||||
|
||||
#: py/objint.c py/runtime.c shared-module/adafruit_pixelbuf/PixelBuf.c
|
||||
#: py/runtime.c shared-module/adafruit_pixelbuf/PixelBuf.c
|
||||
msgid "can't convert %q to %q"
|
||||
msgstr ""
|
||||
|
||||
@ -2636,10 +2636,18 @@ msgstr ""
|
||||
msgid "can't convert '%q' object to %q implicitly"
|
||||
msgstr ""
|
||||
|
||||
#: py/objint.c
|
||||
msgid "can't convert NaN to int"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/ulab/code/numpy/vector.c
|
||||
msgid "can't convert complex to float"
|
||||
msgstr ""
|
||||
|
||||
#: py/objint.c
|
||||
msgid "can't convert inf to int"
|
||||
msgstr ""
|
||||
|
||||
#: py/obj.c
|
||||
msgid "can't convert to complex"
|
||||
msgstr ""
|
||||
@ -2668,14 +2676,14 @@ msgstr ""
|
||||
msgid "can't do binary op between '%q' and '%q'"
|
||||
msgstr ""
|
||||
|
||||
#: py/objcomplex.c
|
||||
msgid "can't do truncated division of a complex number"
|
||||
msgstr ""
|
||||
|
||||
#: py/emitnative.c
|
||||
msgid "can't implicitly convert '%q' to 'bool'"
|
||||
msgstr ""
|
||||
|
||||
#: py/runtime.c
|
||||
msgid "can't import name %q"
|
||||
msgstr ""
|
||||
|
||||
#: py/emitnative.c
|
||||
msgid "can't load from '%q'"
|
||||
msgstr ""
|
||||
@ -2726,6 +2734,14 @@ msgid ""
|
||||
"can't switch from manual field specification to automatic field numbering"
|
||||
msgstr ""
|
||||
|
||||
#: py/objcomplex.c
|
||||
msgid "can't truncate-divide a complex number"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/moductypes.c
|
||||
msgid "can't unambiguously get sizeof scalar"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/moduasyncio.c
|
||||
msgid "can't wait"
|
||||
msgstr ""
|
||||
@ -2758,18 +2774,10 @@ msgstr ""
|
||||
msgid "cannot delete array elements"
|
||||
msgstr ""
|
||||
|
||||
#: py/runtime.c
|
||||
msgid "cannot import name %q"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/ulab/code/ndarray.c
|
||||
msgid "cannot reshape array"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/moductypes.c
|
||||
msgid "cannot unambiguously get sizeof scalar"
|
||||
msgstr ""
|
||||
|
||||
#: py/emitnative.c
|
||||
msgid "casting"
|
||||
msgstr ""
|
||||
@ -2818,6 +2826,10 @@ msgstr ""
|
||||
msgid "comparison of int and uint"
|
||||
msgstr ""
|
||||
|
||||
#: py/objcomplex.c
|
||||
msgid "complex divide by zero"
|
||||
msgstr ""
|
||||
|
||||
#: py/objfloat.c py/parsenum.c
|
||||
msgid "complex values not supported"
|
||||
msgstr ""
|
||||
@ -3390,7 +3402,7 @@ msgid "join expects a list of str/bytes objects consistent with self object"
|
||||
msgstr ""
|
||||
|
||||
#: py/argcheck.c
|
||||
msgid "keyword argument(s) not yet implemented - use normal args instead"
|
||||
msgid "keyword argument(s) not implemented - use normal args instead"
|
||||
msgstr ""
|
||||
|
||||
#: py/emitinlinethumb.c py/emitinlinextensa.c
|
||||
@ -3401,10 +3413,6 @@ msgstr ""
|
||||
msgid "label redefined"
|
||||
msgstr ""
|
||||
|
||||
#: py/stream.c
|
||||
msgid "length argument not allowed for this type"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/audiomixer/MixerVoice.c
|
||||
msgid "level must be between 0 and 1"
|
||||
msgstr ""
|
||||
@ -3491,6 +3499,10 @@ msgstr ""
|
||||
msgid "memory allocation failed, heap is locked"
|
||||
msgstr ""
|
||||
|
||||
#: py/objarray.c
|
||||
msgid "memoryview offset too large"
|
||||
msgstr ""
|
||||
|
||||
#: py/objarray.c
|
||||
msgid "memoryview: length is not a multiple of itemsize"
|
||||
msgstr ""
|
||||
@ -3539,6 +3551,10 @@ msgstr ""
|
||||
msgid "name not defined"
|
||||
msgstr ""
|
||||
|
||||
#: py/persistentcode.c
|
||||
msgid "native code in .mpy unsupported"
|
||||
msgstr ""
|
||||
|
||||
#: py/asmthumb.c
|
||||
msgid "native method too big"
|
||||
msgstr ""
|
||||
@ -3613,7 +3629,7 @@ msgstr ""
|
||||
msgid "non-default argument follows default argument"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/modubinascii.c
|
||||
#: py/objstr.c
|
||||
msgid "non-hex digit found"
|
||||
msgstr ""
|
||||
|
||||
@ -3703,7 +3719,7 @@ msgstr ""
|
||||
msgid "object with buffer protocol required"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/modubinascii.c
|
||||
#: py/objstr.c
|
||||
msgid "odd-length string"
|
||||
msgstr ""
|
||||
|
||||
@ -3723,10 +3739,6 @@ msgstr ""
|
||||
msgid "offset must be non-negative and no greater than buffer length"
|
||||
msgstr ""
|
||||
|
||||
#: py/objstr.c py/objstrunicode.c
|
||||
msgid "offset out of bounds"
|
||||
msgstr ""
|
||||
|
||||
#: ports/nrf/common-hal/audiobusio/PDMIn.c
|
||||
#: ports/stm/common-hal/audiobusio/PDMIn.c
|
||||
msgid "only bit_depth=16 is supported"
|
||||
@ -3975,10 +3987,6 @@ msgstr ""
|
||||
msgid "sleep length must be non-negative"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/ulab/code/ndarray.c
|
||||
msgid "slice step can't be zero"
|
||||
msgstr ""
|
||||
|
||||
#: py/nativeglue.c
|
||||
msgid "slice unsupported"
|
||||
msgstr ""
|
||||
@ -4023,6 +4031,10 @@ msgstr ""
|
||||
msgid "source_bitmap must have value_count of 8"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/modure.c
|
||||
msgid "splitting with sub-captures"
|
||||
msgstr ""
|
||||
|
||||
#: py/objstr.c
|
||||
msgid "start/end indices"
|
||||
msgstr ""
|
||||
@ -4035,8 +4047,17 @@ msgstr ""
|
||||
msgid "stream operation not supported"
|
||||
msgstr ""
|
||||
|
||||
#: py/stream.c
|
||||
msgid "string not supported; use bytes or bytearray"
|
||||
#: py/objarray.c py/objstr.c
|
||||
msgid "string argument without an encoding"
|
||||
msgstr ""
|
||||
|
||||
#: py/objstrunicode.c
|
||||
msgid "string index out of range"
|
||||
msgstr ""
|
||||
|
||||
#: py/objstrunicode.c
|
||||
#, c-format
|
||||
msgid "string indices must be integers, not %s"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/moductypes.c
|
||||
@ -4067,6 +4088,10 @@ msgstr ""
|
||||
msgid "syntax error in uctypes descriptor"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/utime_mphal.c
|
||||
msgid "ticks interval overflow"
|
||||
msgstr ""
|
||||
|
||||
#: ports/nrf/common-hal/watchdog/WatchDogTimer.c
|
||||
msgid "timeout duration exceeded the maximum supported value"
|
||||
msgstr ""
|
||||
|
161
locale/nl.po
161
locale/nl.po
@ -139,7 +139,7 @@ msgstr ""
|
||||
msgid "%q in use"
|
||||
msgstr "%q in gebruik"
|
||||
|
||||
#: py/objstr.c py/objstrunicode.c
|
||||
#: py/objstr.c
|
||||
msgid "%q index out of range"
|
||||
msgstr "%q index buiten bereik"
|
||||
|
||||
@ -226,7 +226,7 @@ msgstr ""
|
||||
msgid "%q must be of type %q or %q, not %q"
|
||||
msgstr ""
|
||||
|
||||
#: py/argcheck.c py/objstrunicode.c shared-module/synthio/__init__.c
|
||||
#: py/argcheck.c shared-module/synthio/__init__.c
|
||||
msgid "%q must be of type %q, not %q"
|
||||
msgstr ""
|
||||
|
||||
@ -279,6 +279,11 @@ msgstr ""
|
||||
msgid "%q[%u] waits on input outside of count"
|
||||
msgstr ""
|
||||
|
||||
#: py/runtime.c
|
||||
#, c-format
|
||||
msgid "%s"
|
||||
msgstr ""
|
||||
|
||||
#: ports/espressif/common-hal/espidf/__init__.c
|
||||
#, c-format
|
||||
msgid "%s error 0x%x"
|
||||
@ -630,7 +635,7 @@ msgid "Below minimum frame rate"
|
||||
msgstr "Onder de minimum frame rate"
|
||||
|
||||
#: ports/raspberrypi/common-hal/audiobusio/I2SOut.c
|
||||
msgid "Bit clock and word select must be sequential pins"
|
||||
msgid "Bit clock and word select must be sequential GPIO pins"
|
||||
msgstr ""
|
||||
|
||||
#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c
|
||||
@ -1106,8 +1111,6 @@ msgstr ""
|
||||
msgid "Generic Failure"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/displayio/Display.c
|
||||
#: shared-bindings/displayio/EPaperDisplay.c
|
||||
#: shared-bindings/framebufferio/FramebufferDisplay.c
|
||||
#: shared-module/displayio/Display.c
|
||||
#: shared-module/framebufferio/FramebufferDisplay.c
|
||||
@ -1975,10 +1978,6 @@ msgstr "Bron en bestemming buffers moeten dezelfde lengte hebben"
|
||||
msgid "Specify exactly one of data0 or data_pins"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/modure.c
|
||||
msgid "Splitting with sub-captures"
|
||||
msgstr "Splitting met sub-captures"
|
||||
|
||||
#: ports/raspberrypi/common-hal/audiopwmio/PWMAudioOut.c
|
||||
msgid "Stereo left must be on PWM channel A"
|
||||
msgstr ""
|
||||
@ -2419,8 +2418,9 @@ msgid "__init__() should return None"
|
||||
msgstr "__init __() zou None moeten retourneren"
|
||||
|
||||
#: py/objtype.c
|
||||
msgid "__init__() should return None, not '%q'"
|
||||
msgstr "__init__() moet None teruggeven, niet '%q'"
|
||||
#, c-format
|
||||
msgid "__init__() should return None, not '%s'"
|
||||
msgstr "__init __ () zou None moeten retouneren, niet '%s'"
|
||||
|
||||
#: py/objobject.c
|
||||
msgid "__new__ arg must be a user-type"
|
||||
@ -2509,8 +2509,8 @@ msgid "attempt to get argmin/argmax of an empty sequence"
|
||||
msgstr "poging om argmin/argmax van een lege sequentie te krijgen"
|
||||
|
||||
#: py/objstr.c
|
||||
msgid "attributes not supported yet"
|
||||
msgstr "attributen nog niet ondersteund"
|
||||
msgid "attributes not supported"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/ulab/code/ulab_tools.c
|
||||
msgid "axis is out of bounds"
|
||||
@ -2638,7 +2638,7 @@ msgstr "kan niet toewijzen aan expressie"
|
||||
msgid "can't cancel self"
|
||||
msgstr ""
|
||||
|
||||
#: py/objint.c py/runtime.c shared-module/adafruit_pixelbuf/PixelBuf.c
|
||||
#: py/runtime.c shared-module/adafruit_pixelbuf/PixelBuf.c
|
||||
msgid "can't convert %q to %q"
|
||||
msgstr "kan %q niet naar %q converteren"
|
||||
|
||||
@ -2656,10 +2656,18 @@ msgstr "kan %s niet omzetten naar een float"
|
||||
msgid "can't convert '%q' object to %q implicitly"
|
||||
msgstr "kan '%q' object niet omzetten naar %q impliciet"
|
||||
|
||||
#: py/objint.c
|
||||
msgid "can't convert NaN to int"
|
||||
msgstr "kan NaN niet omzetten naar int"
|
||||
|
||||
#: extmod/ulab/code/numpy/vector.c
|
||||
msgid "can't convert complex to float"
|
||||
msgstr ""
|
||||
|
||||
#: py/objint.c
|
||||
msgid "can't convert inf to int"
|
||||
msgstr "kan inf niet omzetten naar int"
|
||||
|
||||
#: py/obj.c
|
||||
msgid "can't convert to complex"
|
||||
msgstr "kan niet omzetten naar complex"
|
||||
@ -2688,14 +2696,14 @@ msgstr "kan expressie niet verwijderen"
|
||||
msgid "can't do binary op between '%q' and '%q'"
|
||||
msgstr "kan geen een binaire operatie doen tussen '%q' en '%q'"
|
||||
|
||||
#: py/objcomplex.c
|
||||
msgid "can't do truncated division of a complex number"
|
||||
msgstr "kan geen afgekapte deling doen van een comlex nummer"
|
||||
|
||||
#: py/emitnative.c
|
||||
msgid "can't implicitly convert '%q' to 'bool'"
|
||||
msgstr "kan '%q niet impliciet converteren naar 'bool'"
|
||||
|
||||
#: py/runtime.c
|
||||
msgid "can't import name %q"
|
||||
msgstr ""
|
||||
|
||||
#: py/emitnative.c
|
||||
msgid "can't load from '%q'"
|
||||
msgstr "kan niet laden van '%q'"
|
||||
@ -2746,6 +2754,14 @@ msgid ""
|
||||
"can't switch from manual field specification to automatic field numbering"
|
||||
msgstr "kan niet schakelen tussen handmatige en automatische veld specificatie"
|
||||
|
||||
#: py/objcomplex.c
|
||||
msgid "can't truncate-divide a complex number"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/moductypes.c
|
||||
msgid "can't unambiguously get sizeof scalar"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/moduasyncio.c
|
||||
msgid "can't wait"
|
||||
msgstr ""
|
||||
@ -2778,18 +2794,10 @@ msgstr "kan geen instantie creëren"
|
||||
msgid "cannot delete array elements"
|
||||
msgstr ""
|
||||
|
||||
#: py/runtime.c
|
||||
msgid "cannot import name %q"
|
||||
msgstr "kan naam %q niet importeren"
|
||||
|
||||
#: extmod/ulab/code/ndarray.c
|
||||
msgid "cannot reshape array"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/moductypes.c
|
||||
msgid "cannot unambiguously get sizeof scalar"
|
||||
msgstr ""
|
||||
|
||||
#: py/emitnative.c
|
||||
msgid "casting"
|
||||
msgstr "casting"
|
||||
@ -2838,6 +2846,10 @@ msgstr "kleur moet tussen 0x000000 en 0xffffff liggen"
|
||||
msgid "comparison of int and uint"
|
||||
msgstr ""
|
||||
|
||||
#: py/objcomplex.c
|
||||
msgid "complex divide by zero"
|
||||
msgstr ""
|
||||
|
||||
#: py/objfloat.c py/parsenum.c
|
||||
msgid "complex values not supported"
|
||||
msgstr "complexe waardes niet ondersteund"
|
||||
@ -3415,9 +3427,8 @@ msgstr ""
|
||||
"self-object"
|
||||
|
||||
#: py/argcheck.c
|
||||
msgid "keyword argument(s) not yet implemented - use normal args instead"
|
||||
msgid "keyword argument(s) not implemented - use normal args instead"
|
||||
msgstr ""
|
||||
"trefwoord argument(en) zijn niet geïmplementeerd, gebruik normale argumenten"
|
||||
|
||||
#: py/emitinlinethumb.c py/emitinlinextensa.c
|
||||
msgid "label '%q' not defined"
|
||||
@ -3427,10 +3438,6 @@ msgstr "label '%q' is niet gedefinieerd"
|
||||
msgid "label redefined"
|
||||
msgstr "label opnieuw gedefinieerd"
|
||||
|
||||
#: py/stream.c
|
||||
msgid "length argument not allowed for this type"
|
||||
msgstr "voor dit type is length niet toegestaan"
|
||||
|
||||
#: shared-bindings/audiomixer/MixerVoice.c
|
||||
msgid "level must be between 0 and 1"
|
||||
msgstr "level moet tussen 0 en 1 liggen"
|
||||
@ -3517,6 +3524,10 @@ msgstr "geheugentoewijzing mislukt, %u bytes worden toegewezen"
|
||||
msgid "memory allocation failed, heap is locked"
|
||||
msgstr "geheugentoewijzing mislukt, heap is vergrendeld"
|
||||
|
||||
#: py/objarray.c
|
||||
msgid "memoryview offset too large"
|
||||
msgstr ""
|
||||
|
||||
#: py/objarray.c
|
||||
msgid "memoryview: length is not a multiple of itemsize"
|
||||
msgstr ""
|
||||
@ -3565,6 +3576,10 @@ msgstr "naam '%q' is niet gedefinieerd"
|
||||
msgid "name not defined"
|
||||
msgstr "naam is niet gedefinieerd"
|
||||
|
||||
#: py/persistentcode.c
|
||||
msgid "native code in .mpy unsupported"
|
||||
msgstr ""
|
||||
|
||||
#: py/asmthumb.c
|
||||
msgid "native method too big"
|
||||
msgstr ""
|
||||
@ -3639,7 +3654,7 @@ msgstr "niet-UUID gevonden in service_uuids_whitelist"
|
||||
msgid "non-default argument follows default argument"
|
||||
msgstr "niet-standaard argument volgt op een standaard argument"
|
||||
|
||||
#: extmod/modubinascii.c
|
||||
#: py/objstr.c
|
||||
msgid "non-hex digit found"
|
||||
msgstr "er werd een niet-hexadecimaal cijfer gevonden"
|
||||
|
||||
@ -3729,7 +3744,7 @@ msgstr "object van type '%s' heeft geen len()"
|
||||
msgid "object with buffer protocol required"
|
||||
msgstr "object met buffer protocol vereist"
|
||||
|
||||
#: extmod/modubinascii.c
|
||||
#: py/objstr.c
|
||||
msgid "odd-length string"
|
||||
msgstr "string met oneven lengte"
|
||||
|
||||
@ -3749,10 +3764,6 @@ msgstr "compensatie moet groter of gelijk 0 zijn"
|
||||
msgid "offset must be non-negative and no greater than buffer length"
|
||||
msgstr ""
|
||||
|
||||
#: py/objstr.c py/objstrunicode.c
|
||||
msgid "offset out of bounds"
|
||||
msgstr "offset buiten bereik"
|
||||
|
||||
#: ports/nrf/common-hal/audiobusio/PDMIn.c
|
||||
#: ports/stm/common-hal/audiobusio/PDMIn.c
|
||||
msgid "only bit_depth=16 is supported"
|
||||
@ -4001,10 +4012,6 @@ msgstr "omvang is alleen voor ndarrays gedefinieerd"
|
||||
msgid "sleep length must be non-negative"
|
||||
msgstr "de slaapduur mag niet negatief zijn"
|
||||
|
||||
#: extmod/ulab/code/ndarray.c
|
||||
msgid "slice step can't be zero"
|
||||
msgstr "segmentstap mag niet nul zijn"
|
||||
|
||||
#: py/nativeglue.c
|
||||
msgid "slice unsupported"
|
||||
msgstr ""
|
||||
@ -4049,6 +4056,10 @@ msgstr ""
|
||||
msgid "source_bitmap must have value_count of 8"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/modure.c
|
||||
msgid "splitting with sub-captures"
|
||||
msgstr ""
|
||||
|
||||
#: py/objstr.c
|
||||
msgid "start/end indices"
|
||||
msgstr "start/stop indices"
|
||||
@ -4061,9 +4072,18 @@ msgstr "stop is niet bereikbaar vanaf start"
|
||||
msgid "stream operation not supported"
|
||||
msgstr "stream operatie niet ondersteund"
|
||||
|
||||
#: py/stream.c
|
||||
msgid "string not supported; use bytes or bytearray"
|
||||
msgstr "string niet ondersteund; gebruik bytes of bytearray"
|
||||
#: py/objarray.c py/objstr.c
|
||||
msgid "string argument without an encoding"
|
||||
msgstr ""
|
||||
|
||||
#: py/objstrunicode.c
|
||||
msgid "string index out of range"
|
||||
msgstr "string index buiten bereik"
|
||||
|
||||
#: py/objstrunicode.c
|
||||
#, c-format
|
||||
msgid "string indices must be integers, not %s"
|
||||
msgstr "string indices moeten integer zijn, niet %s"
|
||||
|
||||
#: extmod/moductypes.c
|
||||
msgid "struct: can't index"
|
||||
@ -4093,6 +4113,10 @@ msgstr "syntaxisfout in JSON"
|
||||
msgid "syntax error in uctypes descriptor"
|
||||
msgstr "syntaxisfout in uctypes aanduiding"
|
||||
|
||||
#: extmod/utime_mphal.c
|
||||
msgid "ticks interval overflow"
|
||||
msgstr ""
|
||||
|
||||
#: ports/nrf/common-hal/watchdog/WatchDogTimer.c
|
||||
msgid "timeout duration exceeded the maximum supported value"
|
||||
msgstr "time-outduur is groter dan de ondersteunde maximale waarde"
|
||||
@ -4366,6 +4390,38 @@ msgstr "zi moet van type float zijn"
|
||||
msgid "zi must be of shape (n_section, 2)"
|
||||
msgstr "zi moet vorm (n_section, 2) hebben"
|
||||
|
||||
#~ msgid "Splitting with sub-captures"
|
||||
#~ msgstr "Splitting met sub-captures"
|
||||
|
||||
#~ msgid "__init__() should return None, not '%q'"
|
||||
#~ msgstr "__init__() moet None teruggeven, niet '%q'"
|
||||
|
||||
#~ msgid "attributes not supported yet"
|
||||
#~ msgstr "attributen nog niet ondersteund"
|
||||
|
||||
#~ msgid "can't do truncated division of a complex number"
|
||||
#~ msgstr "kan geen afgekapte deling doen van een comlex nummer"
|
||||
|
||||
#~ msgid "cannot import name %q"
|
||||
#~ msgstr "kan naam %q niet importeren"
|
||||
|
||||
#~ msgid "keyword argument(s) not yet implemented - use normal args instead"
|
||||
#~ msgstr ""
|
||||
#~ "trefwoord argument(en) zijn niet geïmplementeerd, gebruik normale "
|
||||
#~ "argumenten"
|
||||
|
||||
#~ msgid "length argument not allowed for this type"
|
||||
#~ msgstr "voor dit type is length niet toegestaan"
|
||||
|
||||
#~ msgid "offset out of bounds"
|
||||
#~ msgstr "offset buiten bereik"
|
||||
|
||||
#~ msgid "slice step can't be zero"
|
||||
#~ msgstr "segmentstap mag niet nul zijn"
|
||||
|
||||
#~ msgid "string not supported; use bytes or bytearray"
|
||||
#~ msgstr "string niet ondersteund; gebruik bytes of bytearray"
|
||||
|
||||
#~ msgid "Initialization failed due to lack of memory"
|
||||
#~ msgstr "De initialisatie is mislukt vanwege een gebrek aan geheugen"
|
||||
|
||||
@ -5435,21 +5491,12 @@ msgstr "zi moet vorm (n_section, 2) hebben"
|
||||
#~ msgid "Running in safe mode! Auto-reload is off.\n"
|
||||
#~ msgstr "Draaiende in veilige modus! Auto-herlaad is uit.\n"
|
||||
|
||||
#~ msgid "__init__() should return None, not '%s'"
|
||||
#~ msgstr "__init __ () zou None moeten retouneren, niet '%s'"
|
||||
|
||||
#~ msgid "can't convert %s to int"
|
||||
#~ msgstr "kan %s niet omzetten naar een int"
|
||||
|
||||
#~ msgid "can't convert NaN to int"
|
||||
#~ msgstr "kan NaN niet omzetten naar int"
|
||||
|
||||
#~ msgid "can't convert address to int"
|
||||
#~ msgstr "kan adres niet omzetten naar int"
|
||||
|
||||
#~ msgid "can't convert inf to int"
|
||||
#~ msgstr "kan inf niet omzetten naar int"
|
||||
|
||||
#~ msgid "object '%s' is not a tuple or list"
|
||||
#~ msgstr "object '%s' is geen tuple of lijst"
|
||||
|
||||
@ -5462,12 +5509,6 @@ msgstr "zi moet vorm (n_section, 2) hebben"
|
||||
#~ msgid "popitem(): dictionary is empty"
|
||||
#~ msgstr "popitem(): dictionary is leeg"
|
||||
|
||||
#~ msgid "string index out of range"
|
||||
#~ msgstr "string index buiten bereik"
|
||||
|
||||
#~ msgid "string indices must be integers, not %s"
|
||||
#~ msgstr "string indices moeten integer zijn, niet %s"
|
||||
|
||||
#~ msgid "unknown format code '%c' for object of type '%s'"
|
||||
#~ msgstr "onbekende formaatcode '%c' voor object van type '%s'"
|
||||
|
||||
|
157
locale/pl.po
157
locale/pl.po
@ -141,7 +141,7 @@ msgstr ""
|
||||
msgid "%q in use"
|
||||
msgstr "%q w użyciu"
|
||||
|
||||
#: py/objstr.c py/objstrunicode.c
|
||||
#: py/objstr.c
|
||||
msgid "%q index out of range"
|
||||
msgstr "%q poza zakresem"
|
||||
|
||||
@ -228,7 +228,7 @@ msgstr ""
|
||||
msgid "%q must be of type %q or %q, not %q"
|
||||
msgstr ""
|
||||
|
||||
#: py/argcheck.c py/objstrunicode.c shared-module/synthio/__init__.c
|
||||
#: py/argcheck.c shared-module/synthio/__init__.c
|
||||
msgid "%q must be of type %q, not %q"
|
||||
msgstr ""
|
||||
|
||||
@ -281,6 +281,11 @@ msgstr ""
|
||||
msgid "%q[%u] waits on input outside of count"
|
||||
msgstr ""
|
||||
|
||||
#: py/runtime.c
|
||||
#, c-format
|
||||
msgid "%s"
|
||||
msgstr ""
|
||||
|
||||
#: ports/espressif/common-hal/espidf/__init__.c
|
||||
#, c-format
|
||||
msgid "%s error 0x%x"
|
||||
@ -632,7 +637,7 @@ msgid "Below minimum frame rate"
|
||||
msgstr "Poniżej minimalnej liczby klatek na sekundę"
|
||||
|
||||
#: ports/raspberrypi/common-hal/audiobusio/I2SOut.c
|
||||
msgid "Bit clock and word select must be sequential pins"
|
||||
msgid "Bit clock and word select must be sequential GPIO pins"
|
||||
msgstr ""
|
||||
|
||||
#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c
|
||||
@ -1106,8 +1111,6 @@ msgstr ""
|
||||
msgid "Generic Failure"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/displayio/Display.c
|
||||
#: shared-bindings/displayio/EPaperDisplay.c
|
||||
#: shared-bindings/framebufferio/FramebufferDisplay.c
|
||||
#: shared-module/displayio/Display.c
|
||||
#: shared-module/framebufferio/FramebufferDisplay.c
|
||||
@ -1962,10 +1965,6 @@ msgstr "Bufory źródłowy i docelowy muszą mieć taką samą długość"
|
||||
msgid "Specify exactly one of data0 or data_pins"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/modure.c
|
||||
msgid "Splitting with sub-captures"
|
||||
msgstr "Podział z podgrupami"
|
||||
|
||||
#: ports/raspberrypi/common-hal/audiopwmio/PWMAudioOut.c
|
||||
msgid "Stereo left must be on PWM channel A"
|
||||
msgstr ""
|
||||
@ -2402,8 +2401,9 @@ msgid "__init__() should return None"
|
||||
msgstr "__init__() powinien zwracać None"
|
||||
|
||||
#: py/objtype.c
|
||||
msgid "__init__() should return None, not '%q'"
|
||||
msgstr "__init__() powinno zwrócić None, a nie '%q'"
|
||||
#, c-format
|
||||
msgid "__init__() should return None, not '%s'"
|
||||
msgstr "__init__() powinien zwracać None, nie '%s'"
|
||||
|
||||
#: py/objobject.c
|
||||
msgid "__new__ arg must be a user-type"
|
||||
@ -2492,8 +2492,8 @@ msgid "attempt to get argmin/argmax of an empty sequence"
|
||||
msgstr ""
|
||||
|
||||
#: py/objstr.c
|
||||
msgid "attributes not supported yet"
|
||||
msgstr "atrybuty nie są jeszcze obsługiwane"
|
||||
msgid "attributes not supported"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/ulab/code/ulab_tools.c
|
||||
msgid "axis is out of bounds"
|
||||
@ -2620,7 +2620,7 @@ msgstr "przypisanie do wyrażenia"
|
||||
msgid "can't cancel self"
|
||||
msgstr ""
|
||||
|
||||
#: py/objint.c py/runtime.c shared-module/adafruit_pixelbuf/PixelBuf.c
|
||||
#: py/runtime.c shared-module/adafruit_pixelbuf/PixelBuf.c
|
||||
msgid "can't convert %q to %q"
|
||||
msgstr "nie można dokonać konwersji %q na %q"
|
||||
|
||||
@ -2638,10 +2638,18 @@ msgstr "nie można skonwertować %s do float"
|
||||
msgid "can't convert '%q' object to %q implicitly"
|
||||
msgstr "nie można automatycznie skonwertować '%q' do '%q'"
|
||||
|
||||
#: py/objint.c
|
||||
msgid "can't convert NaN to int"
|
||||
msgstr "nie można skonwertować NaN do int"
|
||||
|
||||
#: extmod/ulab/code/numpy/vector.c
|
||||
msgid "can't convert complex to float"
|
||||
msgstr ""
|
||||
|
||||
#: py/objint.c
|
||||
msgid "can't convert inf to int"
|
||||
msgstr "nie można skonwertować inf do int"
|
||||
|
||||
#: py/obj.c
|
||||
msgid "can't convert to complex"
|
||||
msgstr "nie można skonwertować do complex"
|
||||
@ -2670,14 +2678,14 @@ msgstr "nie można usunąć wyrażenia"
|
||||
msgid "can't do binary op between '%q' and '%q'"
|
||||
msgstr "nie można użyć operatora pomiędzy '%q' a '%q'"
|
||||
|
||||
#: py/objcomplex.c
|
||||
msgid "can't do truncated division of a complex number"
|
||||
msgstr "nie można wykonać dzielenia całkowitego na liczbie zespolonej"
|
||||
|
||||
#: py/emitnative.c
|
||||
msgid "can't implicitly convert '%q' to 'bool'"
|
||||
msgstr "nie można automatyczne skonwertować '%q' do 'bool'"
|
||||
|
||||
#: py/runtime.c
|
||||
msgid "can't import name %q"
|
||||
msgstr ""
|
||||
|
||||
#: py/emitnative.c
|
||||
msgid "can't load from '%q'"
|
||||
msgstr "nie można ładować z '%q'"
|
||||
@ -2728,6 +2736,14 @@ msgid ""
|
||||
"can't switch from manual field specification to automatic field numbering"
|
||||
msgstr "nie można zmienić z ręcznego numerowaniu pól do automatycznego"
|
||||
|
||||
#: py/objcomplex.c
|
||||
msgid "can't truncate-divide a complex number"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/moductypes.c
|
||||
msgid "can't unambiguously get sizeof scalar"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/moduasyncio.c
|
||||
msgid "can't wait"
|
||||
msgstr ""
|
||||
@ -2760,18 +2776,10 @@ msgstr "nie można stworzyć instancji"
|
||||
msgid "cannot delete array elements"
|
||||
msgstr ""
|
||||
|
||||
#: py/runtime.c
|
||||
msgid "cannot import name %q"
|
||||
msgstr "nie można zaimportować nazwy %q"
|
||||
|
||||
#: extmod/ulab/code/ndarray.c
|
||||
msgid "cannot reshape array"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/moductypes.c
|
||||
msgid "cannot unambiguously get sizeof scalar"
|
||||
msgstr ""
|
||||
|
||||
#: py/emitnative.c
|
||||
msgid "casting"
|
||||
msgstr "rzutowanie"
|
||||
@ -2820,6 +2828,10 @@ msgstr "kolor musi być pomiędzy 0x000000 a 0xffffff"
|
||||
msgid "comparison of int and uint"
|
||||
msgstr ""
|
||||
|
||||
#: py/objcomplex.c
|
||||
msgid "complex divide by zero"
|
||||
msgstr ""
|
||||
|
||||
#: py/objfloat.c py/parsenum.c
|
||||
msgid "complex values not supported"
|
||||
msgstr "wartości zespolone nieobsługiwane"
|
||||
@ -3393,8 +3405,8 @@ msgid "join expects a list of str/bytes objects consistent with self object"
|
||||
msgstr "join oczekuje listy str/bytes zgodnych z self"
|
||||
|
||||
#: py/argcheck.c
|
||||
msgid "keyword argument(s) not yet implemented - use normal args instead"
|
||||
msgstr "argumenty nazwane nieobsługiwane - proszę użyć zwykłych argumentów"
|
||||
msgid "keyword argument(s) not implemented - use normal args instead"
|
||||
msgstr ""
|
||||
|
||||
#: py/emitinlinethumb.c py/emitinlinextensa.c
|
||||
msgid "label '%q' not defined"
|
||||
@ -3404,10 +3416,6 @@ msgstr "etykieta '%q' niezdefiniowana"
|
||||
msgid "label redefined"
|
||||
msgstr "etykieta przedefiniowana"
|
||||
|
||||
#: py/stream.c
|
||||
msgid "length argument not allowed for this type"
|
||||
msgstr "ten typ nie pozawala na podanie długości"
|
||||
|
||||
#: shared-bindings/audiomixer/MixerVoice.c
|
||||
msgid "level must be between 0 and 1"
|
||||
msgstr ""
|
||||
@ -3494,6 +3502,10 @@ msgstr "alokacja pamięci nie powiodła się, alokowano %u bajtów"
|
||||
msgid "memory allocation failed, heap is locked"
|
||||
msgstr "alokacja pamięci nie powiodła się, sterta zablokowana"
|
||||
|
||||
#: py/objarray.c
|
||||
msgid "memoryview offset too large"
|
||||
msgstr ""
|
||||
|
||||
#: py/objarray.c
|
||||
msgid "memoryview: length is not a multiple of itemsize"
|
||||
msgstr ""
|
||||
@ -3542,6 +3554,10 @@ msgstr "nazwa '%q' niezdefiniowana"
|
||||
msgid "name not defined"
|
||||
msgstr "nazwa niezdefiniowana"
|
||||
|
||||
#: py/persistentcode.c
|
||||
msgid "native code in .mpy unsupported"
|
||||
msgstr ""
|
||||
|
||||
#: py/asmthumb.c
|
||||
msgid "native method too big"
|
||||
msgstr ""
|
||||
@ -3616,7 +3632,7 @@ msgstr ""
|
||||
msgid "non-default argument follows default argument"
|
||||
msgstr "argument z wartością domyślną przed argumentem bez"
|
||||
|
||||
#: extmod/modubinascii.c
|
||||
#: py/objstr.c
|
||||
msgid "non-hex digit found"
|
||||
msgstr "cyfra nieszesnastkowa"
|
||||
|
||||
@ -3706,7 +3722,7 @@ msgstr "obiekt typu '%s' nie ma len()"
|
||||
msgid "object with buffer protocol required"
|
||||
msgstr "wymagany obiekt z protokołem buforu"
|
||||
|
||||
#: extmod/modubinascii.c
|
||||
#: py/objstr.c
|
||||
msgid "odd-length string"
|
||||
msgstr "łańcuch o nieparzystej długości"
|
||||
|
||||
@ -3726,10 +3742,6 @@ msgstr ""
|
||||
msgid "offset must be non-negative and no greater than buffer length"
|
||||
msgstr ""
|
||||
|
||||
#: py/objstr.c py/objstrunicode.c
|
||||
msgid "offset out of bounds"
|
||||
msgstr "offset poza zakresem"
|
||||
|
||||
#: ports/nrf/common-hal/audiobusio/PDMIn.c
|
||||
#: ports/stm/common-hal/audiobusio/PDMIn.c
|
||||
msgid "only bit_depth=16 is supported"
|
||||
@ -3978,10 +3990,6 @@ msgstr ""
|
||||
msgid "sleep length must be non-negative"
|
||||
msgstr "okres snu musi być nieujemny"
|
||||
|
||||
#: extmod/ulab/code/ndarray.c
|
||||
msgid "slice step can't be zero"
|
||||
msgstr ""
|
||||
|
||||
#: py/nativeglue.c
|
||||
msgid "slice unsupported"
|
||||
msgstr ""
|
||||
@ -4026,6 +4034,10 @@ msgstr ""
|
||||
msgid "source_bitmap must have value_count of 8"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/modure.c
|
||||
msgid "splitting with sub-captures"
|
||||
msgstr ""
|
||||
|
||||
#: py/objstr.c
|
||||
msgid "start/end indices"
|
||||
msgstr "początkowe/końcowe indeksy"
|
||||
@ -4038,9 +4050,18 @@ msgstr "stop nie jest osiągalne ze start"
|
||||
msgid "stream operation not supported"
|
||||
msgstr "operacja na strumieniu nieobsługiwana"
|
||||
|
||||
#: py/stream.c
|
||||
msgid "string not supported; use bytes or bytearray"
|
||||
msgstr "łańcuchy nieobsługiwane; użyj bytes lub bytearray"
|
||||
#: py/objarray.c py/objstr.c
|
||||
msgid "string argument without an encoding"
|
||||
msgstr ""
|
||||
|
||||
#: py/objstrunicode.c
|
||||
msgid "string index out of range"
|
||||
msgstr "indeks łańcucha poza zakresem"
|
||||
|
||||
#: py/objstrunicode.c
|
||||
#, c-format
|
||||
msgid "string indices must be integers, not %s"
|
||||
msgstr "indeksy łańcucha muszą być całkowite, nie %s"
|
||||
|
||||
#: extmod/moductypes.c
|
||||
msgid "struct: can't index"
|
||||
@ -4070,6 +4091,10 @@ msgstr "błąd składni w JSON"
|
||||
msgid "syntax error in uctypes descriptor"
|
||||
msgstr "błąd składni w deskryptorze uctypes"
|
||||
|
||||
#: extmod/utime_mphal.c
|
||||
msgid "ticks interval overflow"
|
||||
msgstr ""
|
||||
|
||||
#: ports/nrf/common-hal/watchdog/WatchDogTimer.c
|
||||
msgid "timeout duration exceeded the maximum supported value"
|
||||
msgstr ""
|
||||
@ -4343,6 +4368,33 @@ msgstr ""
|
||||
msgid "zi must be of shape (n_section, 2)"
|
||||
msgstr ""
|
||||
|
||||
#~ msgid "Splitting with sub-captures"
|
||||
#~ msgstr "Podział z podgrupami"
|
||||
|
||||
#~ msgid "__init__() should return None, not '%q'"
|
||||
#~ msgstr "__init__() powinno zwrócić None, a nie '%q'"
|
||||
|
||||
#~ msgid "attributes not supported yet"
|
||||
#~ msgstr "atrybuty nie są jeszcze obsługiwane"
|
||||
|
||||
#~ msgid "can't do truncated division of a complex number"
|
||||
#~ msgstr "nie można wykonać dzielenia całkowitego na liczbie zespolonej"
|
||||
|
||||
#~ msgid "cannot import name %q"
|
||||
#~ msgstr "nie można zaimportować nazwy %q"
|
||||
|
||||
#~ msgid "keyword argument(s) not yet implemented - use normal args instead"
|
||||
#~ msgstr "argumenty nazwane nieobsługiwane - proszę użyć zwykłych argumentów"
|
||||
|
||||
#~ msgid "length argument not allowed for this type"
|
||||
#~ msgstr "ten typ nie pozawala na podanie długości"
|
||||
|
||||
#~ msgid "offset out of bounds"
|
||||
#~ msgstr "offset poza zakresem"
|
||||
|
||||
#~ msgid "string not supported; use bytes or bytearray"
|
||||
#~ msgstr "łańcuchy nieobsługiwane; użyj bytes lub bytearray"
|
||||
|
||||
#~ msgid "Initialization failed due to lack of memory"
|
||||
#~ msgstr "Inicjalizacja nie powiodła się z powodu braku pamięci"
|
||||
|
||||
@ -5038,21 +5090,12 @@ msgstr ""
|
||||
#~ msgid "Running in safe mode! Auto-reload is off.\n"
|
||||
#~ msgstr "Uruchomiony tryb bezpieczeństwa! Samo-przeładowanie wyłączone.\n"
|
||||
|
||||
#~ msgid "__init__() should return None, not '%s'"
|
||||
#~ msgstr "__init__() powinien zwracać None, nie '%s'"
|
||||
|
||||
#~ msgid "can't convert %s to int"
|
||||
#~ msgstr "nie można skonwertować %s do int"
|
||||
|
||||
#~ msgid "can't convert NaN to int"
|
||||
#~ msgstr "nie można skonwertować NaN do int"
|
||||
|
||||
#~ msgid "can't convert address to int"
|
||||
#~ msgstr "nie można skonwertować adresu do int"
|
||||
|
||||
#~ msgid "can't convert inf to int"
|
||||
#~ msgstr "nie można skonwertować inf do int"
|
||||
|
||||
#~ msgid "object '%s' is not a tuple or list"
|
||||
#~ msgstr "obiekt '%s' nie jest krotką ani listą"
|
||||
|
||||
@ -5065,12 +5108,6 @@ msgstr ""
|
||||
#~ msgid "popitem(): dictionary is empty"
|
||||
#~ msgstr "popitem(): słownik jest pusty"
|
||||
|
||||
#~ msgid "string index out of range"
|
||||
#~ msgstr "indeks łańcucha poza zakresem"
|
||||
|
||||
#~ msgid "string indices must be integers, not %s"
|
||||
#~ msgstr "indeksy łańcucha muszą być całkowite, nie %s"
|
||||
|
||||
#~ msgid "unknown format code '%c' for object of type '%s'"
|
||||
#~ msgstr "zły kod formatowania '%c' dla obiektu typu '%s'"
|
||||
|
||||
|
170
locale/pt_BR.po
170
locale/pt_BR.po
@ -152,7 +152,7 @@ msgstr "%q em %q deve ser do tipo %q e não %q"
|
||||
msgid "%q in use"
|
||||
msgstr "%q em uso"
|
||||
|
||||
#: py/objstr.c py/objstrunicode.c
|
||||
#: py/objstr.c
|
||||
msgid "%q index out of range"
|
||||
msgstr "O índice %q está fora do intervalo"
|
||||
|
||||
@ -239,7 +239,7 @@ msgstr "%q deve ser uma matriz do tipo 'h'"
|
||||
msgid "%q must be of type %q or %q, not %q"
|
||||
msgstr "%q deve ser do tipo %q ou %q e não %q"
|
||||
|
||||
#: py/argcheck.c py/objstrunicode.c shared-module/synthio/__init__.c
|
||||
#: py/argcheck.c shared-module/synthio/__init__.c
|
||||
msgid "%q must be of type %q, not %q"
|
||||
msgstr "%q deve ser do tipo %q e não %q"
|
||||
|
||||
@ -292,6 +292,11 @@ msgstr "%q[%u] usa pino extra"
|
||||
msgid "%q[%u] waits on input outside of count"
|
||||
msgstr "%q[%u] espera na entrada fora da contagem"
|
||||
|
||||
#: py/runtime.c
|
||||
#, c-format
|
||||
msgid "%s"
|
||||
msgstr ""
|
||||
|
||||
#: ports/espressif/common-hal/espidf/__init__.c
|
||||
#, c-format
|
||||
msgid "%s error 0x%x"
|
||||
@ -647,8 +652,8 @@ msgid "Below minimum frame rate"
|
||||
msgstr "Abaixo da taxa mínima de quadros"
|
||||
|
||||
#: ports/raspberrypi/common-hal/audiobusio/I2SOut.c
|
||||
msgid "Bit clock and word select must be sequential pins"
|
||||
msgstr "O Bit clock e o word select devem ser pinos sequenciais"
|
||||
msgid "Bit clock and word select must be sequential GPIO pins"
|
||||
msgstr ""
|
||||
|
||||
#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c
|
||||
msgid "Bit clock and word select must share a clock unit"
|
||||
@ -1132,8 +1137,6 @@ msgstr "Inicialização do GNSS"
|
||||
msgid "Generic Failure"
|
||||
msgstr "Falha Genérica"
|
||||
|
||||
#: shared-bindings/displayio/Display.c
|
||||
#: shared-bindings/displayio/EPaperDisplay.c
|
||||
#: shared-bindings/framebufferio/FramebufferDisplay.c
|
||||
#: shared-module/displayio/Display.c
|
||||
#: shared-module/framebufferio/FramebufferDisplay.c
|
||||
@ -2014,10 +2017,6 @@ msgstr "Os buffers da origem e do destino devem ter o mesmo comprimento"
|
||||
msgid "Specify exactly one of data0 or data_pins"
|
||||
msgstr "Especifique exatamente um do data0 ou do data_pins"
|
||||
|
||||
#: extmod/modure.c
|
||||
msgid "Splitting with sub-captures"
|
||||
msgstr "Divisão com sub-capturas"
|
||||
|
||||
#: ports/raspberrypi/common-hal/audiopwmio/PWMAudioOut.c
|
||||
msgid "Stereo left must be on PWM channel A"
|
||||
msgstr "O estéreo à esquerda deve estar no canal PWM A"
|
||||
@ -2471,8 +2470,9 @@ msgid "__init__() should return None"
|
||||
msgstr "O __init__() deve retornar Nenhum"
|
||||
|
||||
#: py/objtype.c
|
||||
msgid "__init__() should return None, not '%q'"
|
||||
msgstr "O __init__() deve retornar Nenhum, não '%q'"
|
||||
#, c-format
|
||||
msgid "__init__() should return None, not '%s'"
|
||||
msgstr "O __init__() deve retornar Nenhum, não '%s'"
|
||||
|
||||
#: py/objobject.c
|
||||
msgid "__new__ arg must be a user-type"
|
||||
@ -2561,8 +2561,8 @@ msgid "attempt to get argmin/argmax of an empty sequence"
|
||||
msgstr "tente obter argmin/argmax de uma sequência vazia"
|
||||
|
||||
#: py/objstr.c
|
||||
msgid "attributes not supported yet"
|
||||
msgstr "atributos ainda não suportados"
|
||||
msgid "attributes not supported"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/ulab/code/ulab_tools.c
|
||||
msgid "axis is out of bounds"
|
||||
@ -2689,7 +2689,7 @@ msgstr "a expressão não pode ser atribuída"
|
||||
msgid "can't cancel self"
|
||||
msgstr "não é possível cancelar a si mesmo"
|
||||
|
||||
#: py/objint.c py/runtime.c shared-module/adafruit_pixelbuf/PixelBuf.c
|
||||
#: py/runtime.c shared-module/adafruit_pixelbuf/PixelBuf.c
|
||||
msgid "can't convert %q to %q"
|
||||
msgstr "não é possível converter %q para %q"
|
||||
|
||||
@ -2707,10 +2707,18 @@ msgstr "Não é possível converter %s para float"
|
||||
msgid "can't convert '%q' object to %q implicitly"
|
||||
msgstr "não é possível converter implicitamente o objeto '%q' para %q"
|
||||
|
||||
#: py/objint.c
|
||||
msgid "can't convert NaN to int"
|
||||
msgstr "Não é possível converter NaN para int"
|
||||
|
||||
#: extmod/ulab/code/numpy/vector.c
|
||||
msgid "can't convert complex to float"
|
||||
msgstr "não foi possível converter complexo em flutuante"
|
||||
|
||||
#: py/objint.c
|
||||
msgid "can't convert inf to int"
|
||||
msgstr "não é possível converter inf para int"
|
||||
|
||||
#: py/obj.c
|
||||
msgid "can't convert to complex"
|
||||
msgstr "não é possível converter para complex"
|
||||
@ -2739,14 +2747,14 @@ msgstr "não é possível excluir a expressão"
|
||||
msgid "can't do binary op between '%q' and '%q'"
|
||||
msgstr "não é possível executar uma operação binária entre '%q' e '%q'"
|
||||
|
||||
#: py/objcomplex.c
|
||||
msgid "can't do truncated division of a complex number"
|
||||
msgstr "não é possível fazer a divisão truncada de um número complexo"
|
||||
|
||||
#: py/emitnative.c
|
||||
msgid "can't implicitly convert '%q' to 'bool'"
|
||||
msgstr "não é possível converter implicitamente '%q' em 'bool'"
|
||||
|
||||
#: py/runtime.c
|
||||
msgid "can't import name %q"
|
||||
msgstr ""
|
||||
|
||||
#: py/emitnative.c
|
||||
msgid "can't load from '%q'"
|
||||
msgstr "não é possível carregar a partir de '%q'"
|
||||
@ -2801,6 +2809,14 @@ msgid ""
|
||||
msgstr ""
|
||||
"não é possível alternar da especificação de campo manual para a automática"
|
||||
|
||||
#: py/objcomplex.c
|
||||
msgid "can't truncate-divide a complex number"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/moductypes.c
|
||||
msgid "can't unambiguously get sizeof scalar"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/moduasyncio.c
|
||||
msgid "can't wait"
|
||||
msgstr "não vejo a hora"
|
||||
@ -2833,18 +2849,10 @@ msgstr "não é possível criar instância"
|
||||
msgid "cannot delete array elements"
|
||||
msgstr "não é possível excluir os elementos da matriz"
|
||||
|
||||
#: py/runtime.c
|
||||
msgid "cannot import name %q"
|
||||
msgstr "não pode importar nome %q"
|
||||
|
||||
#: extmod/ulab/code/ndarray.c
|
||||
msgid "cannot reshape array"
|
||||
msgstr "não é possível remodelar a matriz"
|
||||
|
||||
#: extmod/moductypes.c
|
||||
msgid "cannot unambiguously get sizeof scalar"
|
||||
msgstr "Não é possível obter de forma inequívoca a escala do sizeof"
|
||||
|
||||
#: py/emitnative.c
|
||||
msgid "casting"
|
||||
msgstr "fundição"
|
||||
@ -2895,6 +2903,10 @@ msgstr "cor deve estar entre 0x000000 e 0xffffff"
|
||||
msgid "comparison of int and uint"
|
||||
msgstr "comparação de int e uint"
|
||||
|
||||
#: py/objcomplex.c
|
||||
msgid "complex divide by zero"
|
||||
msgstr ""
|
||||
|
||||
#: py/objfloat.c py/parsenum.c
|
||||
msgid "complex values not supported"
|
||||
msgstr "os valores complexos não compatíveis"
|
||||
@ -3474,10 +3486,8 @@ msgstr ""
|
||||
"join espera uma lista de objetos str/bytes consistentes com o próprio objeto"
|
||||
|
||||
#: py/argcheck.c
|
||||
msgid "keyword argument(s) not yet implemented - use normal args instead"
|
||||
msgid "keyword argument(s) not implemented - use normal args instead"
|
||||
msgstr ""
|
||||
"o(s) argumento(s) de palavra-chave ainda não foi implementado - em vez "
|
||||
"disso, use argumentos normais"
|
||||
|
||||
#: py/emitinlinethumb.c py/emitinlinextensa.c
|
||||
msgid "label '%q' not defined"
|
||||
@ -3487,10 +3497,6 @@ msgstr "o rótulo '%q' não foi definido"
|
||||
msgid "label redefined"
|
||||
msgstr "o rótulo foi redefinido"
|
||||
|
||||
#: py/stream.c
|
||||
msgid "length argument not allowed for this type"
|
||||
msgstr "o argumento de comprimento não é permitido para este tipo"
|
||||
|
||||
#: shared-bindings/audiomixer/MixerVoice.c
|
||||
msgid "level must be between 0 and 1"
|
||||
msgstr "o nível deve estar entre 0 e 1"
|
||||
@ -3579,6 +3585,10 @@ msgstr ""
|
||||
"falha na alocação de memória, a área de alocação dinâmica de variáveis "
|
||||
"(heap) está bloqueada"
|
||||
|
||||
#: py/objarray.c
|
||||
msgid "memoryview offset too large"
|
||||
msgstr ""
|
||||
|
||||
#: py/objarray.c
|
||||
msgid "memoryview: length is not a multiple of itemsize"
|
||||
msgstr "memoryview: o comprimento não é um múltiplo do tamanho dos itens"
|
||||
@ -3627,6 +3637,10 @@ msgstr "o nome '%q' não está definido"
|
||||
msgid "name not defined"
|
||||
msgstr "nome não definido"
|
||||
|
||||
#: py/persistentcode.c
|
||||
msgid "native code in .mpy unsupported"
|
||||
msgstr ""
|
||||
|
||||
#: py/asmthumb.c
|
||||
msgid "native method too big"
|
||||
msgstr "o método nativo é grande demais"
|
||||
@ -3701,7 +3715,7 @@ msgstr "um não UUID foi encontrado na lista service_uuids_whitelist"
|
||||
msgid "non-default argument follows default argument"
|
||||
msgstr "o argumento não predefinido segue o argumento predefinido"
|
||||
|
||||
#: extmod/modubinascii.c
|
||||
#: py/objstr.c
|
||||
msgid "non-hex digit found"
|
||||
msgstr "um dígito não hexadecimal foi encontrado"
|
||||
|
||||
@ -3791,7 +3805,7 @@ msgstr "O objeto do tipo '%s' não possui len()"
|
||||
msgid "object with buffer protocol required"
|
||||
msgstr "é necessário objeto com protocolo do buffer"
|
||||
|
||||
#: extmod/modubinascii.c
|
||||
#: py/objstr.c
|
||||
msgid "odd-length string"
|
||||
msgstr "sequência com comprimento ímpar"
|
||||
|
||||
@ -3811,10 +3825,6 @@ msgstr "o offset deve ser >= 0"
|
||||
msgid "offset must be non-negative and no greater than buffer length"
|
||||
msgstr "o offset deve ser positivo e não maior do que o comprimento do buffer"
|
||||
|
||||
#: py/objstr.c py/objstrunicode.c
|
||||
msgid "offset out of bounds"
|
||||
msgstr "desvio fora dos limites"
|
||||
|
||||
#: ports/nrf/common-hal/audiobusio/PDMIn.c
|
||||
#: ports/stm/common-hal/audiobusio/PDMIn.c
|
||||
msgid "only bit_depth=16 is supported"
|
||||
@ -4068,10 +4078,6 @@ msgstr "o tamanho é definido apenas para os ndarrays"
|
||||
msgid "sleep length must be non-negative"
|
||||
msgstr "a duração do sleep não deve ser negativo"
|
||||
|
||||
#: extmod/ulab/code/ndarray.c
|
||||
msgid "slice step can't be zero"
|
||||
msgstr "a etapa da fatia não pode ser zero"
|
||||
|
||||
#: py/nativeglue.c
|
||||
msgid "slice unsupported"
|
||||
msgstr "fatia não suportada"
|
||||
@ -4116,6 +4122,10 @@ msgstr "o source_bitmap deve ter o value_count de 65536"
|
||||
msgid "source_bitmap must have value_count of 8"
|
||||
msgstr "o source_bitmap deve ter o value_count de 8"
|
||||
|
||||
#: extmod/modure.c
|
||||
msgid "splitting with sub-captures"
|
||||
msgstr ""
|
||||
|
||||
#: py/objstr.c
|
||||
msgid "start/end indices"
|
||||
msgstr "os índices de início/fim"
|
||||
@ -4128,9 +4138,18 @@ msgstr "stop não está acessível a partir do início"
|
||||
msgid "stream operation not supported"
|
||||
msgstr "a operação do fluxo não é compatível"
|
||||
|
||||
#: py/stream.c
|
||||
msgid "string not supported; use bytes or bytearray"
|
||||
msgstr "a string não é compatível; use bytes ou bytearray"
|
||||
#: py/objarray.c py/objstr.c
|
||||
msgid "string argument without an encoding"
|
||||
msgstr ""
|
||||
|
||||
#: py/objstrunicode.c
|
||||
msgid "string index out of range"
|
||||
msgstr "o índice da string está fora do intervalo"
|
||||
|
||||
#: py/objstrunicode.c
|
||||
#, c-format
|
||||
msgid "string indices must be integers, not %s"
|
||||
msgstr "o índices das string devem ser números inteiros, não %s"
|
||||
|
||||
#: extmod/moductypes.c
|
||||
msgid "struct: can't index"
|
||||
@ -4160,6 +4179,10 @@ msgstr "erro de sintaxe no JSON"
|
||||
msgid "syntax error in uctypes descriptor"
|
||||
msgstr "houve um erro de sintaxe no descritor uctypes"
|
||||
|
||||
#: extmod/utime_mphal.c
|
||||
msgid "ticks interval overflow"
|
||||
msgstr ""
|
||||
|
||||
#: ports/nrf/common-hal/watchdog/WatchDogTimer.c
|
||||
msgid "timeout duration exceeded the maximum supported value"
|
||||
msgstr "a duração do tempo limite excedeu o valor máximo suportado"
|
||||
@ -4433,6 +4456,44 @@ msgstr "zi deve ser de um tipo float"
|
||||
msgid "zi must be of shape (n_section, 2)"
|
||||
msgstr "zi deve estar na forma (n_section, 2)"
|
||||
|
||||
#~ msgid "Splitting with sub-captures"
|
||||
#~ msgstr "Divisão com sub-capturas"
|
||||
|
||||
#~ msgid "__init__() should return None, not '%q'"
|
||||
#~ msgstr "O __init__() deve retornar Nenhum, não '%q'"
|
||||
|
||||
#~ msgid "attributes not supported yet"
|
||||
#~ msgstr "atributos ainda não suportados"
|
||||
|
||||
#~ msgid "can't do truncated division of a complex number"
|
||||
#~ msgstr "não é possível fazer a divisão truncada de um número complexo"
|
||||
|
||||
#~ msgid "cannot import name %q"
|
||||
#~ msgstr "não pode importar nome %q"
|
||||
|
||||
#~ msgid "cannot unambiguously get sizeof scalar"
|
||||
#~ msgstr "Não é possível obter de forma inequívoca a escala do sizeof"
|
||||
|
||||
#~ msgid "keyword argument(s) not yet implemented - use normal args instead"
|
||||
#~ msgstr ""
|
||||
#~ "o(s) argumento(s) de palavra-chave ainda não foi implementado - em vez "
|
||||
#~ "disso, use argumentos normais"
|
||||
|
||||
#~ msgid "length argument not allowed for this type"
|
||||
#~ msgstr "o argumento de comprimento não é permitido para este tipo"
|
||||
|
||||
#~ msgid "offset out of bounds"
|
||||
#~ msgstr "desvio fora dos limites"
|
||||
|
||||
#~ msgid "slice step can't be zero"
|
||||
#~ msgstr "a etapa da fatia não pode ser zero"
|
||||
|
||||
#~ msgid "string not supported; use bytes or bytearray"
|
||||
#~ msgstr "a string não é compatível; use bytes ou bytearray"
|
||||
|
||||
#~ msgid "Bit clock and word select must be sequential pins"
|
||||
#~ msgstr "O Bit clock e o word select devem ser pinos sequenciais"
|
||||
|
||||
#~ msgid "Initialization failed due to lack of memory"
|
||||
#~ msgstr "A inicialização falhou devido à falta de memória"
|
||||
|
||||
@ -5989,21 +6050,12 @@ msgstr "zi deve estar na forma (n_section, 2)"
|
||||
#~ msgid "Running in safe mode! Auto-reload is off.\n"
|
||||
#~ msgstr "Rodando em modo seguro! Atualização automática está desligada.\n"
|
||||
|
||||
#~ msgid "__init__() should return None, not '%s'"
|
||||
#~ msgstr "O __init__() deve retornar Nenhum, não '%s'"
|
||||
|
||||
#~ msgid "can't convert %s to int"
|
||||
#~ msgstr "Não é possível converter %s para int"
|
||||
|
||||
#~ msgid "can't convert NaN to int"
|
||||
#~ msgstr "Não é possível converter NaN para int"
|
||||
|
||||
#~ msgid "can't convert address to int"
|
||||
#~ msgstr "não é possível converter o endereço para int"
|
||||
|
||||
#~ msgid "can't convert inf to int"
|
||||
#~ msgstr "não é possível converter inf para int"
|
||||
|
||||
#~ msgid "object '%s' is not a tuple or list"
|
||||
#~ msgstr "o objeto '%s' não é uma tupla ou uma lista"
|
||||
|
||||
@ -6016,12 +6068,6 @@ msgstr "zi deve estar na forma (n_section, 2)"
|
||||
#~ msgid "popitem(): dictionary is empty"
|
||||
#~ msgstr "popitem(): o dicionário está vazio"
|
||||
|
||||
#~ msgid "string index out of range"
|
||||
#~ msgstr "o índice da string está fora do intervalo"
|
||||
|
||||
#~ msgid "string indices must be integers, not %s"
|
||||
#~ msgstr "o índices das string devem ser números inteiros, não %s"
|
||||
|
||||
#~ msgid "unknown format code '%c' for object of type '%s'"
|
||||
#~ msgstr "código de formato desconhecido '%c' para o objeto do tipo '%s'"
|
||||
|
||||
|
162
locale/ru.po
162
locale/ru.po
@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"PO-Revision-Date: 2023-09-10 08:50+0000\n"
|
||||
"PO-Revision-Date: 2023-10-13 20:08+0000\n"
|
||||
"Last-Translator: xXx <xxx_xxx_xxxxxxxxx@mail.ru>\n"
|
||||
"Language-Team: none\n"
|
||||
"Language: ru\n"
|
||||
@ -16,7 +16,7 @@ msgstr ""
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
|
||||
"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
|
||||
"X-Generator: Weblate 5.0.1-dev\n"
|
||||
"X-Generator: Weblate 5.1-dev\n"
|
||||
|
||||
#: main.c
|
||||
msgid ""
|
||||
@ -154,7 +154,7 @@ msgstr "%q в %q должно быть типа %q, а не %q"
|
||||
msgid "%q in use"
|
||||
msgstr "%q используется"
|
||||
|
||||
#: py/objstr.c py/objstrunicode.c
|
||||
#: py/objstr.c
|
||||
msgid "%q index out of range"
|
||||
msgstr "Индекс %q вне диапазона"
|
||||
|
||||
@ -213,7 +213,7 @@ msgstr "%q должно быть <= %d"
|
||||
|
||||
#: ports/espressif/common-hal/watchdog/WatchDogTimer.c
|
||||
msgid "%q must be <= %u"
|
||||
msgstr ""
|
||||
msgstr "%q должно быть <= %u"
|
||||
|
||||
#: py/argcheck.c
|
||||
msgid "%q must be >= %d"
|
||||
@ -241,7 +241,7 @@ msgstr "%q должен быть массивом типа 'h \""
|
||||
msgid "%q must be of type %q or %q, not %q"
|
||||
msgstr "%q должно быть типа%q или%q, а не%q"
|
||||
|
||||
#: py/argcheck.c py/objstrunicode.c shared-module/synthio/__init__.c
|
||||
#: py/argcheck.c shared-module/synthio/__init__.c
|
||||
msgid "%q must be of type %q, not %q"
|
||||
msgstr "%q должно быть типа %q, а не %q"
|
||||
|
||||
@ -294,6 +294,11 @@ msgstr "%q[%u] использует дополнительный контакт"
|
||||
msgid "%q[%u] waits on input outside of count"
|
||||
msgstr "%q [%u] ожидает ввода за пределами графа"
|
||||
|
||||
#: py/runtime.c
|
||||
#, c-format
|
||||
msgid "%s"
|
||||
msgstr ""
|
||||
|
||||
#: ports/espressif/common-hal/espidf/__init__.c
|
||||
#, c-format
|
||||
msgid "%s error 0x%x"
|
||||
@ -646,9 +651,8 @@ msgid "Below minimum frame rate"
|
||||
msgstr "Ниже минимальной частоты кадров"
|
||||
|
||||
#: ports/raspberrypi/common-hal/audiobusio/I2SOut.c
|
||||
msgid "Bit clock and word select must be sequential pins"
|
||||
msgid "Bit clock and word select must be sequential GPIO pins"
|
||||
msgstr ""
|
||||
"Битовый тактовый генератор и выбор слова должны быть последовательными пинами"
|
||||
|
||||
#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c
|
||||
msgid "Bit clock and word select must share a clock unit"
|
||||
@ -1141,8 +1145,6 @@ msgstr "Инициализация GNSS"
|
||||
msgid "Generic Failure"
|
||||
msgstr "Общий сбой"
|
||||
|
||||
#: shared-bindings/displayio/Display.c
|
||||
#: shared-bindings/displayio/EPaperDisplay.c
|
||||
#: shared-bindings/framebufferio/FramebufferDisplay.c
|
||||
#: shared-module/displayio/Display.c
|
||||
#: shared-module/framebufferio/FramebufferDisplay.c
|
||||
@ -2019,10 +2021,6 @@ msgstr "Исходный и конечный буферы должны имет
|
||||
msgid "Specify exactly one of data0 or data_pins"
|
||||
msgstr "Укажите точно один из data0 или data_pins"
|
||||
|
||||
#: extmod/modure.c
|
||||
msgid "Splitting with sub-captures"
|
||||
msgstr "Разделение с помощью субзахватов"
|
||||
|
||||
#: ports/raspberrypi/common-hal/audiopwmio/PWMAudioOut.c
|
||||
msgid "Stereo left must be on PWM channel A"
|
||||
msgstr "Стерео слева должно быть на PWM-канале A"
|
||||
@ -2474,8 +2472,9 @@ msgid "__init__() should return None"
|
||||
msgstr "__init__() должен возвращать значение None"
|
||||
|
||||
#: py/objtype.c
|
||||
msgid "__init__() should return None, not '%q'"
|
||||
msgstr "__init__() должен возвращать None, а не '%q'"
|
||||
#, c-format
|
||||
msgid "__init__() should return None, not '%s'"
|
||||
msgstr ""
|
||||
|
||||
#: py/objobject.c
|
||||
msgid "__new__ arg must be a user-type"
|
||||
@ -2568,8 +2567,8 @@ msgstr ""
|
||||
"последовательности"
|
||||
|
||||
#: py/objstr.c
|
||||
msgid "attributes not supported yet"
|
||||
msgstr "Атрибуты пока не поддерживаются"
|
||||
msgid "attributes not supported"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/ulab/code/ulab_tools.c
|
||||
msgid "axis is out of bounds"
|
||||
@ -2697,7 +2696,7 @@ msgstr "Не удается назначить выражение"
|
||||
msgid "can't cancel self"
|
||||
msgstr "Не могу отменить себя"
|
||||
|
||||
#: py/objint.c py/runtime.c shared-module/adafruit_pixelbuf/PixelBuf.c
|
||||
#: py/runtime.c shared-module/adafruit_pixelbuf/PixelBuf.c
|
||||
msgid "can't convert %q to %q"
|
||||
msgstr "Не удается преобразовать %q в %q"
|
||||
|
||||
@ -2715,10 +2714,18 @@ msgstr "не могу преобразовать %s в число с плава
|
||||
msgid "can't convert '%q' object to %q implicitly"
|
||||
msgstr "не может конвертировать «%q» в% q косвенно"
|
||||
|
||||
#: py/objint.c
|
||||
msgid "can't convert NaN to int"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/ulab/code/numpy/vector.c
|
||||
msgid "can't convert complex to float"
|
||||
msgstr "Не может преобразовать сложный в плавающий"
|
||||
|
||||
#: py/objint.c
|
||||
msgid "can't convert inf to int"
|
||||
msgstr ""
|
||||
|
||||
#: py/obj.c
|
||||
msgid "can't convert to complex"
|
||||
msgstr "не может быть преобразован в сложный"
|
||||
@ -2747,14 +2754,14 @@ msgstr "Не удается удалить выражение"
|
||||
msgid "can't do binary op between '%q' and '%q'"
|
||||
msgstr "Не могу выполнить двоичную операцию между '%q' и '%q'"
|
||||
|
||||
#: py/objcomplex.c
|
||||
msgid "can't do truncated division of a complex number"
|
||||
msgstr "Не могу сделать усеченное деление комплексного числа"
|
||||
|
||||
#: py/emitnative.c
|
||||
msgid "can't implicitly convert '%q' to 'bool'"
|
||||
msgstr "не может неявно преобразовать '%q' в 'bool'"
|
||||
|
||||
#: py/runtime.c
|
||||
msgid "can't import name %q"
|
||||
msgstr ""
|
||||
|
||||
#: py/emitnative.c
|
||||
msgid "can't load from '%q'"
|
||||
msgstr "Не удается загрузить из '%q'"
|
||||
@ -2809,6 +2816,14 @@ msgid ""
|
||||
"can't switch from manual field specification to automatic field numbering"
|
||||
msgstr "не может переключаться с ручного поля на автоматическую нумерацию поля"
|
||||
|
||||
#: py/objcomplex.c
|
||||
msgid "can't truncate-divide a complex number"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/moductypes.c
|
||||
msgid "can't unambiguously get sizeof scalar"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/moduasyncio.c
|
||||
msgid "can't wait"
|
||||
msgstr "не может ждать"
|
||||
@ -2841,18 +2856,10 @@ msgstr "Не удается создать экземпляр"
|
||||
msgid "cannot delete array elements"
|
||||
msgstr "Не удается удалить элементы массива"
|
||||
|
||||
#: py/runtime.c
|
||||
msgid "cannot import name %q"
|
||||
msgstr "Не удается импортировать имя %Q"
|
||||
|
||||
#: extmod/ulab/code/ndarray.c
|
||||
msgid "cannot reshape array"
|
||||
msgstr "Не удается изменить форму массива"
|
||||
|
||||
#: extmod/moductypes.c
|
||||
msgid "cannot unambiguously get sizeof scalar"
|
||||
msgstr "не может однозначно получить размер скаляра"
|
||||
|
||||
#: py/emitnative.c
|
||||
msgid "casting"
|
||||
msgstr "кастинг"
|
||||
@ -2904,6 +2911,10 @@ msgstr "Цвет должен быть от 0x000000 до 0xffffff"
|
||||
msgid "comparison of int and uint"
|
||||
msgstr "сравнение int и uint"
|
||||
|
||||
#: py/objcomplex.c
|
||||
msgid "complex divide by zero"
|
||||
msgstr ""
|
||||
|
||||
#: py/objfloat.c py/parsenum.c
|
||||
msgid "complex values not supported"
|
||||
msgstr "Комплексные значения не поддерживаются"
|
||||
@ -3483,10 +3494,8 @@ msgstr ""
|
||||
"самообъектом"
|
||||
|
||||
#: py/argcheck.c
|
||||
msgid "keyword argument(s) not yet implemented - use normal args instead"
|
||||
msgid "keyword argument(s) not implemented - use normal args instead"
|
||||
msgstr ""
|
||||
"Аргументы ключевого слова еще не реализованы - вместо этого используйте "
|
||||
"обычные аргументы"
|
||||
|
||||
#: py/emitinlinethumb.c py/emitinlinextensa.c
|
||||
msgid "label '%q' not defined"
|
||||
@ -3496,10 +3505,6 @@ msgstr "Метка '%q' не определена"
|
||||
msgid "label redefined"
|
||||
msgstr "Метка переопределена"
|
||||
|
||||
#: py/stream.c
|
||||
msgid "length argument not allowed for this type"
|
||||
msgstr "аргумент длины не допускается для этого типа"
|
||||
|
||||
#: shared-bindings/audiomixer/MixerVoice.c
|
||||
msgid "level must be between 0 and 1"
|
||||
msgstr "уровень должен быть между 0 и 1"
|
||||
@ -3588,6 +3593,10 @@ msgstr "Сбой выделения памяти, выделение %u байт
|
||||
msgid "memory allocation failed, heap is locked"
|
||||
msgstr "Не удалось выделить память, куча заблокирована"
|
||||
|
||||
#: py/objarray.c
|
||||
msgid "memoryview offset too large"
|
||||
msgstr ""
|
||||
|
||||
#: py/objarray.c
|
||||
msgid "memoryview: length is not a multiple of itemsize"
|
||||
msgstr "вид памяти: длина не является множеством элементов"
|
||||
@ -3636,6 +3645,10 @@ msgstr "Имя '%q' не определено"
|
||||
msgid "name not defined"
|
||||
msgstr "Имя не определено"
|
||||
|
||||
#: py/persistentcode.c
|
||||
msgid "native code in .mpy unsupported"
|
||||
msgstr ""
|
||||
|
||||
#: py/asmthumb.c
|
||||
msgid "native method too big"
|
||||
msgstr "родной метод слишком большой"
|
||||
@ -3712,7 +3725,7 @@ msgstr ""
|
||||
"Аргумент отличный от аргумента по умолчанию следует за аргументом по "
|
||||
"умолчанию"
|
||||
|
||||
#: extmod/modubinascii.c
|
||||
#: py/objstr.c
|
||||
msgid "non-hex digit found"
|
||||
msgstr "Ненайдена шестнадцатеричная цифра"
|
||||
|
||||
@ -3802,7 +3815,7 @@ msgstr "объект типа «%s» не имеет len()"
|
||||
msgid "object with buffer protocol required"
|
||||
msgstr "Объект с обязательным буферным протоколом"
|
||||
|
||||
#: extmod/modubinascii.c
|
||||
#: py/objstr.c
|
||||
msgid "odd-length string"
|
||||
msgstr "Строка нечетной длины"
|
||||
|
||||
@ -3822,10 +3835,6 @@ msgstr "Смещение должно быть >= 0"
|
||||
msgid "offset must be non-negative and no greater than buffer length"
|
||||
msgstr "Смещение должно быть неотрицательным и не превышать длину буфера"
|
||||
|
||||
#: py/objstr.c py/objstrunicode.c
|
||||
msgid "offset out of bounds"
|
||||
msgstr "Смещение за пределы"
|
||||
|
||||
#: ports/nrf/common-hal/audiobusio/PDMIn.c
|
||||
#: ports/stm/common-hal/audiobusio/PDMIn.c
|
||||
msgid "only bit_depth=16 is supported"
|
||||
@ -4074,10 +4083,6 @@ msgstr "размер определен только для массива ndarr
|
||||
msgid "sleep length must be non-negative"
|
||||
msgstr "Продолжительность сна должна быть неотрицательной"
|
||||
|
||||
#: extmod/ulab/code/ndarray.c
|
||||
msgid "slice step can't be zero"
|
||||
msgstr "Шаг среза не может быть равен нулю"
|
||||
|
||||
#: py/nativeglue.c
|
||||
msgid "slice unsupported"
|
||||
msgstr "Фрагмент не поддерживается"
|
||||
@ -4122,6 +4127,10 @@ msgstr "source_bitmap должен иметь значение_счет 65536"
|
||||
msgid "source_bitmap must have value_count of 8"
|
||||
msgstr "source_bitmap должен иметь значение_счет 8"
|
||||
|
||||
#: extmod/modure.c
|
||||
msgid "splitting with sub-captures"
|
||||
msgstr ""
|
||||
|
||||
#: py/objstr.c
|
||||
msgid "start/end indices"
|
||||
msgstr "Начальные/конечные индексы"
|
||||
@ -4134,9 +4143,18 @@ msgstr "Остановка недоступна с начального запу
|
||||
msgid "stream operation not supported"
|
||||
msgstr "Потоковая операция не поддерживается"
|
||||
|
||||
#: py/stream.c
|
||||
msgid "string not supported; use bytes or bytearray"
|
||||
msgstr "строка не поддерживается; Использование байтов или массива байтов"
|
||||
#: py/objarray.c py/objstr.c
|
||||
msgid "string argument without an encoding"
|
||||
msgstr ""
|
||||
|
||||
#: py/objstrunicode.c
|
||||
msgid "string index out of range"
|
||||
msgstr ""
|
||||
|
||||
#: py/objstrunicode.c
|
||||
#, c-format
|
||||
msgid "string indices must be integers, not %s"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/moductypes.c
|
||||
msgid "struct: can't index"
|
||||
@ -4166,6 +4184,10 @@ msgstr "синтаксис ошибка в JSON"
|
||||
msgid "syntax error in uctypes descriptor"
|
||||
msgstr "Синтаксическая ошибка в дескрипторе UCTYPES"
|
||||
|
||||
#: extmod/utime_mphal.c
|
||||
msgid "ticks interval overflow"
|
||||
msgstr ""
|
||||
|
||||
#: ports/nrf/common-hal/watchdog/WatchDogTimer.c
|
||||
msgid "timeout duration exceeded the maximum supported value"
|
||||
msgstr ""
|
||||
@ -4441,6 +4463,46 @@ msgstr "zi должно быть типа float"
|
||||
msgid "zi must be of shape (n_section, 2)"
|
||||
msgstr "zi должен иметь форму (n_section, 2)"
|
||||
|
||||
#~ msgid "Splitting with sub-captures"
|
||||
#~ msgstr "Разделение с помощью субзахватов"
|
||||
|
||||
#~ msgid "__init__() should return None, not '%q'"
|
||||
#~ msgstr "__init__() должен возвращать None, а не '%q'"
|
||||
|
||||
#~ msgid "attributes not supported yet"
|
||||
#~ msgstr "Атрибуты пока не поддерживаются"
|
||||
|
||||
#~ msgid "can't do truncated division of a complex number"
|
||||
#~ msgstr "Не могу сделать усеченное деление комплексного числа"
|
||||
|
||||
#~ msgid "cannot import name %q"
|
||||
#~ msgstr "Не удается импортировать имя %Q"
|
||||
|
||||
#~ msgid "cannot unambiguously get sizeof scalar"
|
||||
#~ msgstr "не может однозначно получить размер скаляра"
|
||||
|
||||
#~ msgid "keyword argument(s) not yet implemented - use normal args instead"
|
||||
#~ msgstr ""
|
||||
#~ "Аргументы ключевого слова еще не реализованы - вместо этого используйте "
|
||||
#~ "обычные аргументы"
|
||||
|
||||
#~ msgid "length argument not allowed for this type"
|
||||
#~ msgstr "аргумент длины не допускается для этого типа"
|
||||
|
||||
#~ msgid "offset out of bounds"
|
||||
#~ msgstr "Смещение за пределы"
|
||||
|
||||
#~ msgid "slice step can't be zero"
|
||||
#~ msgstr "Шаг среза не может быть равен нулю"
|
||||
|
||||
#~ msgid "string not supported; use bytes or bytearray"
|
||||
#~ msgstr "строка не поддерживается; Использование байтов или массива байтов"
|
||||
|
||||
#~ msgid "Bit clock and word select must be sequential pins"
|
||||
#~ msgstr ""
|
||||
#~ "Битовый тактовый генератор и выбор слова должны быть последовательными "
|
||||
#~ "пинами"
|
||||
|
||||
#~ msgid "Initialization failed due to lack of memory"
|
||||
#~ msgstr "Инициализация не удалась из-за нехватки памяти"
|
||||
|
||||
|
168
locale/sv.po
168
locale/sv.po
@ -151,7 +151,7 @@ msgstr "%q i %q måste vara av typen %q, inte %q"
|
||||
msgid "%q in use"
|
||||
msgstr "%q används redan"
|
||||
|
||||
#: py/objstr.c py/objstrunicode.c
|
||||
#: py/objstr.c
|
||||
msgid "%q index out of range"
|
||||
msgstr "Index %q ligger utanför intervallet"
|
||||
|
||||
@ -240,7 +240,7 @@ msgstr "%q måste vara en matris av typen 'h'"
|
||||
msgid "%q must be of type %q or %q, not %q"
|
||||
msgstr "%q måste vara av typen %q eller %q, inte %q"
|
||||
|
||||
#: py/argcheck.c py/objstrunicode.c shared-module/synthio/__init__.c
|
||||
#: py/argcheck.c shared-module/synthio/__init__.c
|
||||
msgid "%q must be of type %q, not %q"
|
||||
msgstr "%q måste vara av typen %q, inte %q"
|
||||
|
||||
@ -293,6 +293,11 @@ msgstr "%q[%u] använder extra pinnar"
|
||||
msgid "%q[%u] waits on input outside of count"
|
||||
msgstr "%q[%u] väntar på input utanför count"
|
||||
|
||||
#: py/runtime.c
|
||||
#, c-format
|
||||
msgid "%s"
|
||||
msgstr ""
|
||||
|
||||
#: ports/espressif/common-hal/espidf/__init__.c
|
||||
#, c-format
|
||||
msgid "%s error 0x%x"
|
||||
@ -644,8 +649,8 @@ msgid "Below minimum frame rate"
|
||||
msgstr "Under minsta bildfrekvens"
|
||||
|
||||
#: ports/raspberrypi/common-hal/audiobusio/I2SOut.c
|
||||
msgid "Bit clock and word select must be sequential pins"
|
||||
msgstr "Bitklocka och word select måste vara sekventiella pinnar"
|
||||
msgid "Bit clock and word select must be sequential GPIO pins"
|
||||
msgstr ""
|
||||
|
||||
#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c
|
||||
msgid "Bit clock and word select must share a clock unit"
|
||||
@ -1123,8 +1128,6 @@ msgstr "GNSS start"
|
||||
msgid "Generic Failure"
|
||||
msgstr "Allmänt fel"
|
||||
|
||||
#: shared-bindings/displayio/Display.c
|
||||
#: shared-bindings/displayio/EPaperDisplay.c
|
||||
#: shared-bindings/framebufferio/FramebufferDisplay.c
|
||||
#: shared-module/displayio/Display.c
|
||||
#: shared-module/framebufferio/FramebufferDisplay.c
|
||||
@ -1994,10 +1997,6 @@ msgstr "Käll- och målbuffertar måste ha samma längd"
|
||||
msgid "Specify exactly one of data0 or data_pins"
|
||||
msgstr "Ange en av data0 eller data_pins"
|
||||
|
||||
#: extmod/modure.c
|
||||
msgid "Splitting with sub-captures"
|
||||
msgstr "Splitting med sub-captures"
|
||||
|
||||
#: ports/raspberrypi/common-hal/audiopwmio/PWMAudioOut.c
|
||||
msgid "Stereo left must be on PWM channel A"
|
||||
msgstr "Vänster stereokanal måste använda PWM kanal A"
|
||||
@ -2443,8 +2442,9 @@ msgid "__init__() should return None"
|
||||
msgstr "__init __() ska returnera None"
|
||||
|
||||
#: py/objtype.c
|
||||
msgid "__init__() should return None, not '%q'"
|
||||
msgstr "__init__() ska returnera None, inte '%q'"
|
||||
#, c-format
|
||||
msgid "__init__() should return None, not '%s'"
|
||||
msgstr "__init __ () ska returnera None, inte '%s'"
|
||||
|
||||
#: py/objobject.c
|
||||
msgid "__new__ arg must be a user-type"
|
||||
@ -2533,8 +2533,8 @@ msgid "attempt to get argmin/argmax of an empty sequence"
|
||||
msgstr "försök att få argmin/argmax för en tom sekvens"
|
||||
|
||||
#: py/objstr.c
|
||||
msgid "attributes not supported yet"
|
||||
msgstr "attribut stöds inte än"
|
||||
msgid "attributes not supported"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/ulab/code/ulab_tools.c
|
||||
msgid "axis is out of bounds"
|
||||
@ -2661,7 +2661,7 @@ msgstr "kan inte tilldela uttryck"
|
||||
msgid "can't cancel self"
|
||||
msgstr "kan inte avbryta sig själv"
|
||||
|
||||
#: py/objint.c py/runtime.c shared-module/adafruit_pixelbuf/PixelBuf.c
|
||||
#: py/runtime.c shared-module/adafruit_pixelbuf/PixelBuf.c
|
||||
msgid "can't convert %q to %q"
|
||||
msgstr "kan inte konvertera %q till %q"
|
||||
|
||||
@ -2679,10 +2679,18 @@ msgstr "kan inte konvertera %s till float"
|
||||
msgid "can't convert '%q' object to %q implicitly"
|
||||
msgstr "kan inte konvertera '%q' objekt implicit till %q"
|
||||
|
||||
#: py/objint.c
|
||||
msgid "can't convert NaN to int"
|
||||
msgstr "kan inte konvertera NaN till int"
|
||||
|
||||
#: extmod/ulab/code/numpy/vector.c
|
||||
msgid "can't convert complex to float"
|
||||
msgstr "kan inte konvertera complex till float"
|
||||
|
||||
#: py/objint.c
|
||||
msgid "can't convert inf to int"
|
||||
msgstr "kan inte konvertera inf till int"
|
||||
|
||||
#: py/obj.c
|
||||
msgid "can't convert to complex"
|
||||
msgstr "kan inte konvertera till komplex"
|
||||
@ -2711,14 +2719,14 @@ msgstr "kan inte ta bort uttryck"
|
||||
msgid "can't do binary op between '%q' and '%q'"
|
||||
msgstr "kan inte göra binära op mellan '%q' och '%q'"
|
||||
|
||||
#: py/objcomplex.c
|
||||
msgid "can't do truncated division of a complex number"
|
||||
msgstr "kan inte göra trunkerad division av komplext tal"
|
||||
|
||||
#: py/emitnative.c
|
||||
msgid "can't implicitly convert '%q' to 'bool'"
|
||||
msgstr "kan inte implicit konvertera '%q' till 'bool'"
|
||||
|
||||
#: py/runtime.c
|
||||
msgid "can't import name %q"
|
||||
msgstr ""
|
||||
|
||||
#: py/emitnative.c
|
||||
msgid "can't load from '%q'"
|
||||
msgstr "kan inte ladda från '%q'"
|
||||
@ -2771,6 +2779,14 @@ msgid ""
|
||||
msgstr ""
|
||||
"kan inte byta från manuell fältspecifikation till automatisk fältnumrering"
|
||||
|
||||
#: py/objcomplex.c
|
||||
msgid "can't truncate-divide a complex number"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/moductypes.c
|
||||
msgid "can't unambiguously get sizeof scalar"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/moduasyncio.c
|
||||
msgid "can't wait"
|
||||
msgstr "kan inte vänta"
|
||||
@ -2803,18 +2819,10 @@ msgstr "kan inte skapa instans"
|
||||
msgid "cannot delete array elements"
|
||||
msgstr "kan inte ta bort arrayelement"
|
||||
|
||||
#: py/runtime.c
|
||||
msgid "cannot import name %q"
|
||||
msgstr "kan inte importera namn %q"
|
||||
|
||||
#: extmod/ulab/code/ndarray.c
|
||||
msgid "cannot reshape array"
|
||||
msgstr "kan inte omforma matris"
|
||||
|
||||
#: extmod/moductypes.c
|
||||
msgid "cannot unambiguously get sizeof scalar"
|
||||
msgstr "Kan inte entydigt få sizeof scalar"
|
||||
|
||||
#: py/emitnative.c
|
||||
msgid "casting"
|
||||
msgstr "casting inte implementerad"
|
||||
@ -2863,6 +2871,10 @@ msgstr "färg måste vara mellan 0x000000 och 0xffffff"
|
||||
msgid "comparison of int and uint"
|
||||
msgstr "jämförelse av int och uint"
|
||||
|
||||
#: py/objcomplex.c
|
||||
msgid "complex divide by zero"
|
||||
msgstr ""
|
||||
|
||||
#: py/objfloat.c py/parsenum.c
|
||||
msgid "complex values not supported"
|
||||
msgstr "komplexa värden stöds inte"
|
||||
@ -3442,9 +3454,8 @@ msgstr ""
|
||||
"objektet self"
|
||||
|
||||
#: py/argcheck.c
|
||||
msgid "keyword argument(s) not yet implemented - use normal args instead"
|
||||
msgid "keyword argument(s) not implemented - use normal args instead"
|
||||
msgstr ""
|
||||
"nyckelordsargument är ännu inte implementerade - använd vanliga argument"
|
||||
|
||||
#: py/emitinlinethumb.c py/emitinlinextensa.c
|
||||
msgid "label '%q' not defined"
|
||||
@ -3454,10 +3465,6 @@ msgstr "etiketten '%q' har inte definierats"
|
||||
msgid "label redefined"
|
||||
msgstr "etiketten omdefinierad"
|
||||
|
||||
#: py/stream.c
|
||||
msgid "length argument not allowed for this type"
|
||||
msgstr "argumentet length är inte är tillåten för denna typ"
|
||||
|
||||
#: shared-bindings/audiomixer/MixerVoice.c
|
||||
msgid "level must be between 0 and 1"
|
||||
msgstr "level ska ligga mellan 0 och 1"
|
||||
@ -3544,6 +3551,10 @@ msgstr "minnesallokering misslyckades, allokerar %u byte"
|
||||
msgid "memory allocation failed, heap is locked"
|
||||
msgstr "minnesallokeringen misslyckades, heapen är låst"
|
||||
|
||||
#: py/objarray.c
|
||||
msgid "memoryview offset too large"
|
||||
msgstr ""
|
||||
|
||||
#: py/objarray.c
|
||||
msgid "memoryview: length is not a multiple of itemsize"
|
||||
msgstr "memoryview: längden är inte en multipel av itemsize"
|
||||
@ -3592,6 +3603,10 @@ msgstr "namnet '%q' är inte definierat"
|
||||
msgid "name not defined"
|
||||
msgstr "namn inte definierat"
|
||||
|
||||
#: py/persistentcode.c
|
||||
msgid "native code in .mpy unsupported"
|
||||
msgstr ""
|
||||
|
||||
#: py/asmthumb.c
|
||||
msgid "native method too big"
|
||||
msgstr "inbyggd metod för stor"
|
||||
@ -3666,7 +3681,7 @@ msgstr "icke-UUID hittades i service_uuids_whitelist"
|
||||
msgid "non-default argument follows default argument"
|
||||
msgstr "icke-standard argument följer standard argument"
|
||||
|
||||
#: extmod/modubinascii.c
|
||||
#: py/objstr.c
|
||||
msgid "non-hex digit found"
|
||||
msgstr "icke-hexnummer hittade"
|
||||
|
||||
@ -3756,7 +3771,7 @@ msgstr "objekt av typen '%s' har ingen len()"
|
||||
msgid "object with buffer protocol required"
|
||||
msgstr "objekt med buffertprotokoll krävs"
|
||||
|
||||
#: extmod/modubinascii.c
|
||||
#: py/objstr.c
|
||||
msgid "odd-length string"
|
||||
msgstr "sträng har udda längd"
|
||||
|
||||
@ -3776,10 +3791,6 @@ msgstr "offset måste vara >= 0"
|
||||
msgid "offset must be non-negative and no greater than buffer length"
|
||||
msgstr "offset måste vara icke-negativt och inte längre än buffertlängd"
|
||||
|
||||
#: py/objstr.c py/objstrunicode.c
|
||||
msgid "offset out of bounds"
|
||||
msgstr "offset utanför gränserna"
|
||||
|
||||
#: ports/nrf/common-hal/audiobusio/PDMIn.c
|
||||
#: ports/stm/common-hal/audiobusio/PDMIn.c
|
||||
msgid "only bit_depth=16 is supported"
|
||||
@ -4028,10 +4039,6 @@ msgstr "storlek är enbart definierad ndarrays"
|
||||
msgid "sleep length must be non-negative"
|
||||
msgstr "värdet för sleep måste vara positivt"
|
||||
|
||||
#: extmod/ulab/code/ndarray.c
|
||||
msgid "slice step can't be zero"
|
||||
msgstr "segmentsteg kan inte vara noll"
|
||||
|
||||
#: py/nativeglue.c
|
||||
msgid "slice unsupported"
|
||||
msgstr "slice stöds inte"
|
||||
@ -4076,6 +4083,10 @@ msgstr "source_bitmap måste ha value_count av 65536"
|
||||
msgid "source_bitmap must have value_count of 8"
|
||||
msgstr "source_bitmap måste ha value_count av 8"
|
||||
|
||||
#: extmod/modure.c
|
||||
msgid "splitting with sub-captures"
|
||||
msgstr ""
|
||||
|
||||
#: py/objstr.c
|
||||
msgid "start/end indices"
|
||||
msgstr "start-/slutindex"
|
||||
@ -4088,9 +4099,18 @@ msgstr "stop kan inte nås från start"
|
||||
msgid "stream operation not supported"
|
||||
msgstr "stream-åtgärd stöds inte"
|
||||
|
||||
#: py/stream.c
|
||||
msgid "string not supported; use bytes or bytearray"
|
||||
msgstr "sträng stöds inte; använd bytes eller bytearray"
|
||||
#: py/objarray.c py/objstr.c
|
||||
msgid "string argument without an encoding"
|
||||
msgstr ""
|
||||
|
||||
#: py/objstrunicode.c
|
||||
msgid "string index out of range"
|
||||
msgstr "strängindex utanför intervallet"
|
||||
|
||||
#: py/objstrunicode.c
|
||||
#, c-format
|
||||
msgid "string indices must be integers, not %s"
|
||||
msgstr "strängindex måste vara heltal, inte %s"
|
||||
|
||||
#: extmod/moductypes.c
|
||||
msgid "struct: can't index"
|
||||
@ -4120,6 +4140,10 @@ msgstr "syntaxfel i JSON"
|
||||
msgid "syntax error in uctypes descriptor"
|
||||
msgstr "syntaxfel i uctypes deskriptor"
|
||||
|
||||
#: extmod/utime_mphal.c
|
||||
msgid "ticks interval overflow"
|
||||
msgstr ""
|
||||
|
||||
#: ports/nrf/common-hal/watchdog/WatchDogTimer.c
|
||||
msgid "timeout duration exceeded the maximum supported value"
|
||||
msgstr "timeout-längd överskred det maximala värde som stöds"
|
||||
@ -4393,6 +4417,43 @@ msgstr "zi måste vara av typ float"
|
||||
msgid "zi must be of shape (n_section, 2)"
|
||||
msgstr "zi måste vara i formen (n_section, 2)"
|
||||
|
||||
#~ msgid "Splitting with sub-captures"
|
||||
#~ msgstr "Splitting med sub-captures"
|
||||
|
||||
#~ msgid "__init__() should return None, not '%q'"
|
||||
#~ msgstr "__init__() ska returnera None, inte '%q'"
|
||||
|
||||
#~ msgid "attributes not supported yet"
|
||||
#~ msgstr "attribut stöds inte än"
|
||||
|
||||
#~ msgid "can't do truncated division of a complex number"
|
||||
#~ msgstr "kan inte göra trunkerad division av komplext tal"
|
||||
|
||||
#~ msgid "cannot import name %q"
|
||||
#~ msgstr "kan inte importera namn %q"
|
||||
|
||||
#~ msgid "cannot unambiguously get sizeof scalar"
|
||||
#~ msgstr "Kan inte entydigt få sizeof scalar"
|
||||
|
||||
#~ msgid "keyword argument(s) not yet implemented - use normal args instead"
|
||||
#~ msgstr ""
|
||||
#~ "nyckelordsargument är ännu inte implementerade - använd vanliga argument"
|
||||
|
||||
#~ msgid "length argument not allowed for this type"
|
||||
#~ msgstr "argumentet length är inte är tillåten för denna typ"
|
||||
|
||||
#~ msgid "offset out of bounds"
|
||||
#~ msgstr "offset utanför gränserna"
|
||||
|
||||
#~ msgid "slice step can't be zero"
|
||||
#~ msgstr "segmentsteg kan inte vara noll"
|
||||
|
||||
#~ msgid "string not supported; use bytes or bytearray"
|
||||
#~ msgstr "sträng stöds inte; använd bytes eller bytearray"
|
||||
|
||||
#~ msgid "Bit clock and word select must be sequential pins"
|
||||
#~ msgstr "Bitklocka och word select måste vara sekventiella pinnar"
|
||||
|
||||
#~ msgid "Initialization failed due to lack of memory"
|
||||
#~ msgstr "Initieringen misslyckades på grund av minnesbrist"
|
||||
|
||||
@ -5922,21 +5983,12 @@ msgstr "zi måste vara i formen (n_section, 2)"
|
||||
#~ msgid "Running in safe mode! Auto-reload is off.\n"
|
||||
#~ msgstr "Kör i säkert läge! Autoladdning är avstängd.\n"
|
||||
|
||||
#~ msgid "__init__() should return None, not '%s'"
|
||||
#~ msgstr "__init __ () ska returnera None, inte '%s'"
|
||||
|
||||
#~ msgid "can't convert %s to int"
|
||||
#~ msgstr "kan inte konvertera %s till int"
|
||||
|
||||
#~ msgid "can't convert NaN to int"
|
||||
#~ msgstr "kan inte konvertera NaN till int"
|
||||
|
||||
#~ msgid "can't convert address to int"
|
||||
#~ msgstr "kan inte konvertera address till int"
|
||||
|
||||
#~ msgid "can't convert inf to int"
|
||||
#~ msgstr "kan inte konvertera inf till int"
|
||||
|
||||
#~ msgid "object '%s' is not a tuple or list"
|
||||
#~ msgstr "objektet '%s' är inte en tupel eller lista"
|
||||
|
||||
@ -5949,12 +6001,6 @@ msgstr "zi måste vara i formen (n_section, 2)"
|
||||
#~ msgid "popitem(): dictionary is empty"
|
||||
#~ msgstr "popitem(): ordlistan är tom"
|
||||
|
||||
#~ msgid "string index out of range"
|
||||
#~ msgstr "strängindex utanför intervallet"
|
||||
|
||||
#~ msgid "string indices must be integers, not %s"
|
||||
#~ msgstr "strängindex måste vara heltal, inte %s"
|
||||
|
||||
#~ msgid "unknown format code '%c' for object of type '%s'"
|
||||
#~ msgstr "okänt format '%c' för objekt av typ '%s'"
|
||||
|
||||
|
112
locale/tr.po
112
locale/tr.po
@ -147,7 +147,7 @@ msgstr ""
|
||||
msgid "%q in use"
|
||||
msgstr "%q kullanımda"
|
||||
|
||||
#: py/objstr.c py/objstrunicode.c
|
||||
#: py/objstr.c
|
||||
msgid "%q index out of range"
|
||||
msgstr "%q indeksi aralık dışında"
|
||||
|
||||
@ -234,7 +234,7 @@ msgstr ""
|
||||
msgid "%q must be of type %q or %q, not %q"
|
||||
msgstr ""
|
||||
|
||||
#: py/argcheck.c py/objstrunicode.c shared-module/synthio/__init__.c
|
||||
#: py/argcheck.c shared-module/synthio/__init__.c
|
||||
msgid "%q must be of type %q, not %q"
|
||||
msgstr ""
|
||||
|
||||
@ -287,6 +287,11 @@ msgstr ""
|
||||
msgid "%q[%u] waits on input outside of count"
|
||||
msgstr ""
|
||||
|
||||
#: py/runtime.c
|
||||
#, c-format
|
||||
msgid "%s"
|
||||
msgstr ""
|
||||
|
||||
#: ports/espressif/common-hal/espidf/__init__.c
|
||||
#, c-format
|
||||
msgid "%s error 0x%x"
|
||||
@ -639,8 +644,8 @@ msgid "Below minimum frame rate"
|
||||
msgstr "Minimum kare hızından altında"
|
||||
|
||||
#: ports/raspberrypi/common-hal/audiobusio/I2SOut.c
|
||||
msgid "Bit clock and word select must be sequential pins"
|
||||
msgstr "Bit saati ve kelime seçimi pinleri sıralı olmalıdır"
|
||||
msgid "Bit clock and word select must be sequential GPIO pins"
|
||||
msgstr ""
|
||||
|
||||
#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c
|
||||
msgid "Bit clock and word select must share a clock unit"
|
||||
@ -1116,8 +1121,6 @@ msgstr "GNSS init"
|
||||
msgid "Generic Failure"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/displayio/Display.c
|
||||
#: shared-bindings/displayio/EPaperDisplay.c
|
||||
#: shared-bindings/framebufferio/FramebufferDisplay.c
|
||||
#: shared-module/displayio/Display.c
|
||||
#: shared-module/framebufferio/FramebufferDisplay.c
|
||||
@ -1976,10 +1979,6 @@ msgstr ""
|
||||
msgid "Specify exactly one of data0 or data_pins"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/modure.c
|
||||
msgid "Splitting with sub-captures"
|
||||
msgstr ""
|
||||
|
||||
#: ports/raspberrypi/common-hal/audiopwmio/PWMAudioOut.c
|
||||
msgid "Stereo left must be on PWM channel A"
|
||||
msgstr ""
|
||||
@ -2416,7 +2415,8 @@ msgid "__init__() should return None"
|
||||
msgstr ""
|
||||
|
||||
#: py/objtype.c
|
||||
msgid "__init__() should return None, not '%q'"
|
||||
#, c-format
|
||||
msgid "__init__() should return None, not '%s'"
|
||||
msgstr ""
|
||||
|
||||
#: py/objobject.c
|
||||
@ -2506,7 +2506,7 @@ msgid "attempt to get argmin/argmax of an empty sequence"
|
||||
msgstr ""
|
||||
|
||||
#: py/objstr.c
|
||||
msgid "attributes not supported yet"
|
||||
msgid "attributes not supported"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/ulab/code/ulab_tools.c
|
||||
@ -2634,7 +2634,7 @@ msgstr ""
|
||||
msgid "can't cancel self"
|
||||
msgstr ""
|
||||
|
||||
#: py/objint.c py/runtime.c shared-module/adafruit_pixelbuf/PixelBuf.c
|
||||
#: py/runtime.c shared-module/adafruit_pixelbuf/PixelBuf.c
|
||||
msgid "can't convert %q to %q"
|
||||
msgstr ""
|
||||
|
||||
@ -2652,10 +2652,18 @@ msgstr ""
|
||||
msgid "can't convert '%q' object to %q implicitly"
|
||||
msgstr ""
|
||||
|
||||
#: py/objint.c
|
||||
msgid "can't convert NaN to int"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/ulab/code/numpy/vector.c
|
||||
msgid "can't convert complex to float"
|
||||
msgstr ""
|
||||
|
||||
#: py/objint.c
|
||||
msgid "can't convert inf to int"
|
||||
msgstr ""
|
||||
|
||||
#: py/obj.c
|
||||
msgid "can't convert to complex"
|
||||
msgstr ""
|
||||
@ -2684,14 +2692,14 @@ msgstr ""
|
||||
msgid "can't do binary op between '%q' and '%q'"
|
||||
msgstr ""
|
||||
|
||||
#: py/objcomplex.c
|
||||
msgid "can't do truncated division of a complex number"
|
||||
msgstr ""
|
||||
|
||||
#: py/emitnative.c
|
||||
msgid "can't implicitly convert '%q' to 'bool'"
|
||||
msgstr ""
|
||||
|
||||
#: py/runtime.c
|
||||
msgid "can't import name %q"
|
||||
msgstr ""
|
||||
|
||||
#: py/emitnative.c
|
||||
msgid "can't load from '%q'"
|
||||
msgstr ""
|
||||
@ -2742,6 +2750,14 @@ msgid ""
|
||||
"can't switch from manual field specification to automatic field numbering"
|
||||
msgstr ""
|
||||
|
||||
#: py/objcomplex.c
|
||||
msgid "can't truncate-divide a complex number"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/moductypes.c
|
||||
msgid "can't unambiguously get sizeof scalar"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/moduasyncio.c
|
||||
msgid "can't wait"
|
||||
msgstr ""
|
||||
@ -2774,18 +2790,10 @@ msgstr ""
|
||||
msgid "cannot delete array elements"
|
||||
msgstr ""
|
||||
|
||||
#: py/runtime.c
|
||||
msgid "cannot import name %q"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/ulab/code/ndarray.c
|
||||
msgid "cannot reshape array"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/moductypes.c
|
||||
msgid "cannot unambiguously get sizeof scalar"
|
||||
msgstr ""
|
||||
|
||||
#: py/emitnative.c
|
||||
msgid "casting"
|
||||
msgstr ""
|
||||
@ -2834,6 +2842,10 @@ msgstr ""
|
||||
msgid "comparison of int and uint"
|
||||
msgstr ""
|
||||
|
||||
#: py/objcomplex.c
|
||||
msgid "complex divide by zero"
|
||||
msgstr ""
|
||||
|
||||
#: py/objfloat.c py/parsenum.c
|
||||
msgid "complex values not supported"
|
||||
msgstr ""
|
||||
@ -3406,7 +3418,7 @@ msgid "join expects a list of str/bytes objects consistent with self object"
|
||||
msgstr ""
|
||||
|
||||
#: py/argcheck.c
|
||||
msgid "keyword argument(s) not yet implemented - use normal args instead"
|
||||
msgid "keyword argument(s) not implemented - use normal args instead"
|
||||
msgstr ""
|
||||
|
||||
#: py/emitinlinethumb.c py/emitinlinextensa.c
|
||||
@ -3417,10 +3429,6 @@ msgstr ""
|
||||
msgid "label redefined"
|
||||
msgstr ""
|
||||
|
||||
#: py/stream.c
|
||||
msgid "length argument not allowed for this type"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/audiomixer/MixerVoice.c
|
||||
msgid "level must be between 0 and 1"
|
||||
msgstr ""
|
||||
@ -3507,6 +3515,10 @@ msgstr ""
|
||||
msgid "memory allocation failed, heap is locked"
|
||||
msgstr ""
|
||||
|
||||
#: py/objarray.c
|
||||
msgid "memoryview offset too large"
|
||||
msgstr ""
|
||||
|
||||
#: py/objarray.c
|
||||
msgid "memoryview: length is not a multiple of itemsize"
|
||||
msgstr ""
|
||||
@ -3555,6 +3567,10 @@ msgstr ""
|
||||
msgid "name not defined"
|
||||
msgstr ""
|
||||
|
||||
#: py/persistentcode.c
|
||||
msgid "native code in .mpy unsupported"
|
||||
msgstr ""
|
||||
|
||||
#: py/asmthumb.c
|
||||
msgid "native method too big"
|
||||
msgstr ""
|
||||
@ -3629,7 +3645,7 @@ msgstr ""
|
||||
msgid "non-default argument follows default argument"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/modubinascii.c
|
||||
#: py/objstr.c
|
||||
msgid "non-hex digit found"
|
||||
msgstr ""
|
||||
|
||||
@ -3719,7 +3735,7 @@ msgstr ""
|
||||
msgid "object with buffer protocol required"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/modubinascii.c
|
||||
#: py/objstr.c
|
||||
msgid "odd-length string"
|
||||
msgstr ""
|
||||
|
||||
@ -3739,10 +3755,6 @@ msgstr ""
|
||||
msgid "offset must be non-negative and no greater than buffer length"
|
||||
msgstr ""
|
||||
|
||||
#: py/objstr.c py/objstrunicode.c
|
||||
msgid "offset out of bounds"
|
||||
msgstr ""
|
||||
|
||||
#: ports/nrf/common-hal/audiobusio/PDMIn.c
|
||||
#: ports/stm/common-hal/audiobusio/PDMIn.c
|
||||
msgid "only bit_depth=16 is supported"
|
||||
@ -3991,10 +4003,6 @@ msgstr ""
|
||||
msgid "sleep length must be non-negative"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/ulab/code/ndarray.c
|
||||
msgid "slice step can't be zero"
|
||||
msgstr ""
|
||||
|
||||
#: py/nativeglue.c
|
||||
msgid "slice unsupported"
|
||||
msgstr ""
|
||||
@ -4039,6 +4047,10 @@ msgstr ""
|
||||
msgid "source_bitmap must have value_count of 8"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/modure.c
|
||||
msgid "splitting with sub-captures"
|
||||
msgstr ""
|
||||
|
||||
#: py/objstr.c
|
||||
msgid "start/end indices"
|
||||
msgstr ""
|
||||
@ -4051,8 +4063,17 @@ msgstr ""
|
||||
msgid "stream operation not supported"
|
||||
msgstr ""
|
||||
|
||||
#: py/stream.c
|
||||
msgid "string not supported; use bytes or bytearray"
|
||||
#: py/objarray.c py/objstr.c
|
||||
msgid "string argument without an encoding"
|
||||
msgstr ""
|
||||
|
||||
#: py/objstrunicode.c
|
||||
msgid "string index out of range"
|
||||
msgstr ""
|
||||
|
||||
#: py/objstrunicode.c
|
||||
#, c-format
|
||||
msgid "string indices must be integers, not %s"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/moductypes.c
|
||||
@ -4083,6 +4104,10 @@ msgstr ""
|
||||
msgid "syntax error in uctypes descriptor"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/utime_mphal.c
|
||||
msgid "ticks interval overflow"
|
||||
msgstr ""
|
||||
|
||||
#: ports/nrf/common-hal/watchdog/WatchDogTimer.c
|
||||
msgid "timeout duration exceeded the maximum supported value"
|
||||
msgstr ""
|
||||
@ -4356,6 +4381,9 @@ msgstr ""
|
||||
msgid "zi must be of shape (n_section, 2)"
|
||||
msgstr ""
|
||||
|
||||
#~ msgid "Bit clock and word select must be sequential pins"
|
||||
#~ msgstr "Bit saati ve kelime seçimi pinleri sıralı olmalıdır"
|
||||
|
||||
#~ msgid "Initialization failed due to lack of memory"
|
||||
#~ msgstr "Bellek yetersizliği nedeniyle başlatma başarısız oldu"
|
||||
|
||||
|
@ -7,7 +7,7 @@ msgstr ""
|
||||
"Project-Id-Version: circuitpython-cn\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2021-01-04 12:55-0600\n"
|
||||
"PO-Revision-Date: 2023-09-13 17:49+0000\n"
|
||||
"PO-Revision-Date: 2023-10-16 23:54+0000\n"
|
||||
"Last-Translator: hexthat <hexthat@gmail.com>\n"
|
||||
"Language-Team: Chinese Hanyu Pinyin\n"
|
||||
"Language: zh_Latn_pinyin\n"
|
||||
@ -15,7 +15,7 @@ msgstr ""
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=1; plural=0;\n"
|
||||
"X-Generator: Weblate 5.0.1-dev\n"
|
||||
"X-Generator: Weblate 5.1\n"
|
||||
|
||||
#: main.c
|
||||
msgid ""
|
||||
@ -153,7 +153,7 @@ msgstr "%q zhōng de %q bì xū shì %q lèi xíng, ér bù shì %q"
|
||||
msgid "%q in use"
|
||||
msgstr "%q zhèngzài bèi shǐyòng"
|
||||
|
||||
#: py/objstr.c py/objstrunicode.c
|
||||
#: py/objstr.c
|
||||
msgid "%q index out of range"
|
||||
msgstr "%q suǒyǐn chāochū fànwéi"
|
||||
|
||||
@ -212,7 +212,7 @@ msgstr "%q bìxū <= %d"
|
||||
|
||||
#: ports/espressif/common-hal/watchdog/WatchDogTimer.c
|
||||
msgid "%q must be <= %u"
|
||||
msgstr ""
|
||||
msgstr "%q bì xū <= %u"
|
||||
|
||||
#: py/argcheck.c
|
||||
msgid "%q must be >= %d"
|
||||
@ -241,7 +241,7 @@ msgstr "%q bìxū shì lèixíng wéi 'h' de shùzǔ"
|
||||
msgid "%q must be of type %q or %q, not %q"
|
||||
msgstr "%q de lèi xíng bì xū shì %q huò %q, ér bù shì %q"
|
||||
|
||||
#: py/argcheck.c py/objstrunicode.c shared-module/synthio/__init__.c
|
||||
#: py/argcheck.c shared-module/synthio/__init__.c
|
||||
msgid "%q must be of type %q, not %q"
|
||||
msgstr "%q de lèi xíng bì xū shì %q, ér bù shì %q"
|
||||
|
||||
@ -294,6 +294,11 @@ msgstr "%q[%u] shǐyòng éwài de yǐnjiǎo"
|
||||
msgid "%q[%u] waits on input outside of count"
|
||||
msgstr "%q[%u] děngdài jìshù zhīwài de shūrù"
|
||||
|
||||
#: py/runtime.c
|
||||
#, c-format
|
||||
msgid "%s"
|
||||
msgstr ""
|
||||
|
||||
#: ports/espressif/common-hal/espidf/__init__.c
|
||||
#, c-format
|
||||
msgid "%s error 0x%x"
|
||||
@ -645,8 +650,8 @@ msgid "Below minimum frame rate"
|
||||
msgstr "dīyú zuìdī zhēnlǜ"
|
||||
|
||||
#: ports/raspberrypi/common-hal/audiobusio/I2SOut.c
|
||||
msgid "Bit clock and word select must be sequential pins"
|
||||
msgstr "wèi shízhōng hé zì xuǎnzé bìxū shì liánxù de yǐn jiǎo"
|
||||
msgid "Bit clock and word select must be sequential GPIO pins"
|
||||
msgstr "wèi shízhōng hézì xuǎnzé bìxū shì shùnxù GPIO yǐnjiǎo"
|
||||
|
||||
#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c
|
||||
msgid "Bit clock and word select must share a clock unit"
|
||||
@ -1126,8 +1131,6 @@ msgstr "GNSS chūshǐhuà"
|
||||
msgid "Generic Failure"
|
||||
msgstr "tōng yòng gù zhàng"
|
||||
|
||||
#: shared-bindings/displayio/Display.c
|
||||
#: shared-bindings/displayio/EPaperDisplay.c
|
||||
#: shared-bindings/framebufferio/FramebufferDisplay.c
|
||||
#: shared-module/displayio/Display.c
|
||||
#: shared-module/framebufferio/FramebufferDisplay.c
|
||||
@ -1997,10 +2000,6 @@ msgstr "Yuán huǎnchōng qū hé mùbiāo huǎnchōng qū de chángdù bìxū x
|
||||
msgid "Specify exactly one of data0 or data_pins"
|
||||
msgstr "zhǐ dìng data0 huò data_pins zhōng de yí gè"
|
||||
|
||||
#: extmod/modure.c
|
||||
msgid "Splitting with sub-captures"
|
||||
msgstr "Yǔ zi bǔhuò fēnliè"
|
||||
|
||||
#: ports/raspberrypi/common-hal/audiopwmio/PWMAudioOut.c
|
||||
msgid "Stereo left must be on PWM channel A"
|
||||
msgstr "lì tǐ shēng zuǒ bì xū shì zài PWM tōng dào A"
|
||||
@ -2446,8 +2445,9 @@ msgid "__init__() should return None"
|
||||
msgstr "__init__() fǎnhuí not"
|
||||
|
||||
#: py/objtype.c
|
||||
msgid "__init__() should return None, not '%q'"
|
||||
msgstr "__Init __() yīnggāi fǎnhuí None, ér bùshì '%q'"
|
||||
#, c-format
|
||||
msgid "__init__() should return None, not '%s'"
|
||||
msgstr "__Init__() yīnggāi fǎnhuí not, ér bùshì '%s'"
|
||||
|
||||
#: py/objobject.c
|
||||
msgid "__new__ arg must be a user-type"
|
||||
@ -2536,8 +2536,8 @@ msgid "attempt to get argmin/argmax of an empty sequence"
|
||||
msgstr "chángshì huòqǔ kōng xùliè de argmin/ argmax"
|
||||
|
||||
#: py/objstr.c
|
||||
msgid "attributes not supported yet"
|
||||
msgstr "shǔxìng shàngwèi zhīchí"
|
||||
msgid "attributes not supported"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/ulab/code/ulab_tools.c
|
||||
msgid "axis is out of bounds"
|
||||
@ -2664,7 +2664,7 @@ msgstr "bùnéng fēnpèi dào biǎodá shì"
|
||||
msgid "can't cancel self"
|
||||
msgstr "bù néng qǔ xiāo zì wǒ"
|
||||
|
||||
#: py/objint.c py/runtime.c shared-module/adafruit_pixelbuf/PixelBuf.c
|
||||
#: py/runtime.c shared-module/adafruit_pixelbuf/PixelBuf.c
|
||||
msgid "can't convert %q to %q"
|
||||
msgstr "Wúfǎ jiāng %q zhuǎnhuàn wèi %q"
|
||||
|
||||
@ -2682,10 +2682,18 @@ msgstr "wúfǎ zhuǎnhuàn %s dào fú diǎn xíng biànliàng"
|
||||
msgid "can't convert '%q' object to %q implicitly"
|
||||
msgstr "wúfǎ jiāng '%q' duìxiàng zhuǎnhuàn wèi %q yǐn hán"
|
||||
|
||||
#: py/objint.c
|
||||
msgid "can't convert NaN to int"
|
||||
msgstr "wúfǎ jiāng dǎoháng zhuǎnhuàn wèi int"
|
||||
|
||||
#: extmod/ulab/code/numpy/vector.c
|
||||
msgid "can't convert complex to float"
|
||||
msgstr "wú fǎ jiāng fù zá zhuǎn huàn wéi fú dòng"
|
||||
|
||||
#: py/objint.c
|
||||
msgid "can't convert inf to int"
|
||||
msgstr "bùnéng jiāng inf zhuǎnhuàn wèi int"
|
||||
|
||||
#: py/obj.c
|
||||
msgid "can't convert to complex"
|
||||
msgstr "bùnéng zhuǎnhuàn wèi fùzá"
|
||||
@ -2714,14 +2722,14 @@ msgstr "bùnéng shānchú biǎodá shì"
|
||||
msgid "can't do binary op between '%q' and '%q'"
|
||||
msgstr "bùnéng zài '%q' hé '%q' zhī jiān jìnxíng èr yuán yùnsuàn"
|
||||
|
||||
#: py/objcomplex.c
|
||||
msgid "can't do truncated division of a complex number"
|
||||
msgstr "bùnéng fēnjiě fùzá de shùzì"
|
||||
|
||||
#: py/emitnative.c
|
||||
msgid "can't implicitly convert '%q' to 'bool'"
|
||||
msgstr "bùnéng yǐn hán de jiāng '%q' zhuǎnhuàn wèi 'bool'"
|
||||
|
||||
#: py/runtime.c
|
||||
msgid "can't import name %q"
|
||||
msgstr ""
|
||||
|
||||
#: py/emitnative.c
|
||||
msgid "can't load from '%q'"
|
||||
msgstr "wúfǎ cóng '%q' jiāzài"
|
||||
@ -2772,6 +2780,14 @@ msgid ""
|
||||
"can't switch from manual field specification to automatic field numbering"
|
||||
msgstr "wúfǎ cóng shǒudòng zìduàn guīgé qiēhuàn dào zìdòng zìduàn biānhào"
|
||||
|
||||
#: py/objcomplex.c
|
||||
msgid "can't truncate-divide a complex number"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/moductypes.c
|
||||
msgid "can't unambiguously get sizeof scalar"
|
||||
msgstr ""
|
||||
|
||||
#: extmod/moduasyncio.c
|
||||
msgid "can't wait"
|
||||
msgstr "děngbùjí"
|
||||
@ -2805,18 +2821,10 @@ msgstr "wúfǎ chuàngjiàn shílì"
|
||||
msgid "cannot delete array elements"
|
||||
msgstr "wúfǎ shānchú shùzǔ yuánsù"
|
||||
|
||||
#: py/runtime.c
|
||||
msgid "cannot import name %q"
|
||||
msgstr "wúfǎ dǎorù míngchēng %q"
|
||||
|
||||
#: extmod/ulab/code/ndarray.c
|
||||
msgid "cannot reshape array"
|
||||
msgstr "wúfǎ chóngsù zhènliè xíngzhuàng"
|
||||
|
||||
#: extmod/moductypes.c
|
||||
msgid "cannot unambiguously get sizeof scalar"
|
||||
msgstr "bù néng háo bù hán hu de dé dào dà xiǎo de lín"
|
||||
|
||||
#: py/emitnative.c
|
||||
msgid "casting"
|
||||
msgstr "tóuyǐng"
|
||||
@ -2868,6 +2876,10 @@ msgstr "yánsè bìxū jiè yú 0x000000 hé 0xffffff zhī jiān"
|
||||
msgid "comparison of int and uint"
|
||||
msgstr "yīn tè hé wū yīn tè de bǐ jiào"
|
||||
|
||||
#: py/objcomplex.c
|
||||
msgid "complex divide by zero"
|
||||
msgstr ""
|
||||
|
||||
#: py/objfloat.c py/parsenum.c
|
||||
msgid "complex values not supported"
|
||||
msgstr "bù zhīchí fùzá de zhí"
|
||||
@ -3445,8 +3457,8 @@ msgstr ""
|
||||
"tiānjiā yīgè fúhé zìshēn duìxiàng de zìfú chuàn/zì jié duìxiàng lièbiǎo"
|
||||
|
||||
#: py/argcheck.c
|
||||
msgid "keyword argument(s) not yet implemented - use normal args instead"
|
||||
msgstr "guānjiàn zì cānshù shàngwèi shíxiàn - qǐng shǐyòng chángguī cānshù"
|
||||
msgid "keyword argument(s) not implemented - use normal args instead"
|
||||
msgstr ""
|
||||
|
||||
#: py/emitinlinethumb.c py/emitinlinextensa.c
|
||||
msgid "label '%q' not defined"
|
||||
@ -3456,10 +3468,6 @@ msgstr "biāoqiān '%q' wèi dìngyì"
|
||||
msgid "label redefined"
|
||||
msgstr "biāoqiān chóngxīn dìngyì"
|
||||
|
||||
#: py/stream.c
|
||||
msgid "length argument not allowed for this type"
|
||||
msgstr "bù yǔnxǔ gāi lèixíng de chángdù cānshù"
|
||||
|
||||
#: shared-bindings/audiomixer/MixerVoice.c
|
||||
msgid "level must be between 0 and 1"
|
||||
msgstr "Level bìxū jiè yú 0 hé 1 zhī jiān"
|
||||
@ -3546,6 +3554,10 @@ msgstr "nèicún fēnpèi shībài, fēnpèi %u zì jié"
|
||||
msgid "memory allocation failed, heap is locked"
|
||||
msgstr "jìyì tǐ fēnpèi shībài, duī bèi suǒdìng"
|
||||
|
||||
#: py/objarray.c
|
||||
msgid "memoryview offset too large"
|
||||
msgstr ""
|
||||
|
||||
#: py/objarray.c
|
||||
msgid "memoryview: length is not a multiple of itemsize"
|
||||
msgstr "nèi cún shì tú: cháng dù bú shì xiàng mù huà de bèi shù"
|
||||
@ -3594,6 +3606,10 @@ msgstr "míngchēng '%q' wèi dìngyì"
|
||||
msgid "name not defined"
|
||||
msgstr "míngchēng wèi dìngyì"
|
||||
|
||||
#: py/persistentcode.c
|
||||
msgid "native code in .mpy unsupported"
|
||||
msgstr ""
|
||||
|
||||
#: py/asmthumb.c
|
||||
msgid "native method too big"
|
||||
msgstr "yuán shēng fāng fǎ tài dà"
|
||||
@ -3668,7 +3684,7 @@ msgstr "Zài service_uuids bái míngdān zhōng zhǎodào fēi UUID"
|
||||
msgid "non-default argument follows default argument"
|
||||
msgstr "bùshì mòrèn cānshù zūnxún mòrèn cānshù"
|
||||
|
||||
#: extmod/modubinascii.c
|
||||
#: py/objstr.c
|
||||
msgid "non-hex digit found"
|
||||
msgstr "zhǎodào fēi shíliù jìn zhì shùzì"
|
||||
|
||||
@ -3758,7 +3774,7 @@ msgstr "lèixíng '%s' de duìxiàng méiyǒu chángdù"
|
||||
msgid "object with buffer protocol required"
|
||||
msgstr "xūyào huǎnchōng qū xiéyì de duìxiàng"
|
||||
|
||||
#: extmod/modubinascii.c
|
||||
#: py/objstr.c
|
||||
msgid "odd-length string"
|
||||
msgstr "jīshù zìfú chuàn"
|
||||
|
||||
@ -3778,10 +3794,6 @@ msgstr "piān yí liàng bì xū >= 0"
|
||||
msgid "offset must be non-negative and no greater than buffer length"
|
||||
msgstr "piān yí liàng bì xū wéi fēi fù shù qiě bù dà yú huǎn chōng qū cháng dù"
|
||||
|
||||
#: py/objstr.c py/objstrunicode.c
|
||||
msgid "offset out of bounds"
|
||||
msgstr "piānlí biānjiè"
|
||||
|
||||
#: ports/nrf/common-hal/audiobusio/PDMIn.c
|
||||
#: ports/stm/common-hal/audiobusio/PDMIn.c
|
||||
msgid "only bit_depth=16 is supported"
|
||||
@ -4030,10 +4042,6 @@ msgstr "dàxiǎo jǐn wèi ndarrays dìngyì"
|
||||
msgid "sleep length must be non-negative"
|
||||
msgstr "shuìmián chángdù bìxū shìfēi fùshù"
|
||||
|
||||
#: extmod/ulab/code/ndarray.c
|
||||
msgid "slice step can't be zero"
|
||||
msgstr "qiēpiàn bù cháng bùnéng wéi líng"
|
||||
|
||||
#: py/nativeglue.c
|
||||
msgid "slice unsupported"
|
||||
msgstr "qiē piàn bù shòu zhī chí"
|
||||
@ -4081,6 +4089,10 @@ msgstr ""
|
||||
msgid "source_bitmap must have value_count of 8"
|
||||
msgstr "yuán wèi tú (source_bitmap) de zhí de shù mù (value_count) bì xū shì 8"
|
||||
|
||||
#: extmod/modure.c
|
||||
msgid "splitting with sub-captures"
|
||||
msgstr ""
|
||||
|
||||
#: py/objstr.c
|
||||
msgid "start/end indices"
|
||||
msgstr "kāishǐ/jiéshù zhǐshù"
|
||||
@ -4093,9 +4105,18 @@ msgstr "tíngzhǐ wúfǎ cóng kāishǐ zhōng zhǎodào"
|
||||
msgid "stream operation not supported"
|
||||
msgstr "bù zhīchí liú cāozuò"
|
||||
|
||||
#: py/stream.c
|
||||
msgid "string not supported; use bytes or bytearray"
|
||||
msgstr "zìfú chuàn bù zhīchí; shǐyòng zì jié huò zì jié zǔ"
|
||||
#: py/objarray.c py/objstr.c
|
||||
msgid "string argument without an encoding"
|
||||
msgstr ""
|
||||
|
||||
#: py/objstrunicode.c
|
||||
msgid "string index out of range"
|
||||
msgstr "zìfú chuàn suǒyǐn chāochū fànwéi"
|
||||
|
||||
#: py/objstrunicode.c
|
||||
#, c-format
|
||||
msgid "string indices must be integers, not %s"
|
||||
msgstr "zìfú chuàn zhǐshù bìxū shì zhěngshù, ér bùshì %s"
|
||||
|
||||
#: extmod/moductypes.c
|
||||
msgid "struct: can't index"
|
||||
@ -4125,6 +4146,10 @@ msgstr "JSON yǔfǎ cuòwù"
|
||||
msgid "syntax error in uctypes descriptor"
|
||||
msgstr "uctypes miáoshù fú zhōng de yǔfǎ cuòwù"
|
||||
|
||||
#: extmod/utime_mphal.c
|
||||
msgid "ticks interval overflow"
|
||||
msgstr ""
|
||||
|
||||
#: ports/nrf/common-hal/watchdog/WatchDogTimer.c
|
||||
msgid "timeout duration exceeded the maximum supported value"
|
||||
msgstr "chāoshí shíjiān chāoguò zuìdà zhīchí zhí"
|
||||
@ -4398,6 +4423,42 @@ msgstr "zi bìxū wèi fú diǎn xíng"
|
||||
msgid "zi must be of shape (n_section, 2)"
|
||||
msgstr "zi bìxū jùyǒu xíngzhuàng (n_section,2)"
|
||||
|
||||
#~ msgid "Splitting with sub-captures"
|
||||
#~ msgstr "Yǔ zi bǔhuò fēnliè"
|
||||
|
||||
#~ msgid "__init__() should return None, not '%q'"
|
||||
#~ msgstr "__Init __() yīnggāi fǎnhuí None, ér bùshì '%q'"
|
||||
|
||||
#~ msgid "attributes not supported yet"
|
||||
#~ msgstr "shǔxìng shàngwèi zhīchí"
|
||||
|
||||
#~ msgid "can't do truncated division of a complex number"
|
||||
#~ msgstr "bùnéng fēnjiě fùzá de shùzì"
|
||||
|
||||
#~ msgid "cannot import name %q"
|
||||
#~ msgstr "wúfǎ dǎorù míngchēng %q"
|
||||
|
||||
#~ msgid "cannot unambiguously get sizeof scalar"
|
||||
#~ msgstr "bù néng háo bù hán hu de dé dào dà xiǎo de lín"
|
||||
|
||||
#~ msgid "keyword argument(s) not yet implemented - use normal args instead"
|
||||
#~ msgstr "guānjiàn zì cānshù shàngwèi shíxiàn - qǐng shǐyòng chángguī cānshù"
|
||||
|
||||
#~ msgid "length argument not allowed for this type"
|
||||
#~ msgstr "bù yǔnxǔ gāi lèixíng de chángdù cānshù"
|
||||
|
||||
#~ msgid "offset out of bounds"
|
||||
#~ msgstr "piānlí biānjiè"
|
||||
|
||||
#~ msgid "slice step can't be zero"
|
||||
#~ msgstr "qiēpiàn bù cháng bùnéng wéi líng"
|
||||
|
||||
#~ msgid "string not supported; use bytes or bytearray"
|
||||
#~ msgstr "zìfú chuàn bù zhīchí; shǐyòng zì jié huò zì jié zǔ"
|
||||
|
||||
#~ msgid "Bit clock and word select must be sequential pins"
|
||||
#~ msgstr "wèi shízhōng hé zì xuǎnzé bìxū shì liánxù de yǐn jiǎo"
|
||||
|
||||
#~ msgid "Initialization failed due to lack of memory"
|
||||
#~ msgstr "yóu yú nèi cún bù zú, chū shǐ huà shī bài"
|
||||
|
||||
@ -5872,21 +5933,12 @@ msgstr "zi bìxū jùyǒu xíngzhuàng (n_section,2)"
|
||||
#~ msgid "Running in safe mode! Auto-reload is off.\n"
|
||||
#~ msgstr "Zài ānquán móshì xià yùnxíng! Zìdòng chóngxīn jiāzài yǐ guānbì.\n"
|
||||
|
||||
#~ msgid "__init__() should return None, not '%s'"
|
||||
#~ msgstr "__Init__() yīnggāi fǎnhuí not, ér bùshì '%s'"
|
||||
|
||||
#~ msgid "can't convert %s to int"
|
||||
#~ msgstr "wúfǎ zhuǎnhuàn%s dào int"
|
||||
|
||||
#~ msgid "can't convert NaN to int"
|
||||
#~ msgstr "wúfǎ jiāng dǎoháng zhuǎnhuàn wèi int"
|
||||
|
||||
#~ msgid "can't convert address to int"
|
||||
#~ msgstr "wúfǎ jiāng dìzhǐ zhuǎnhuàn wèi int"
|
||||
|
||||
#~ msgid "can't convert inf to int"
|
||||
#~ msgstr "bùnéng jiāng inf zhuǎnhuàn wèi int"
|
||||
|
||||
#~ msgid "object '%s' is not a tuple or list"
|
||||
#~ msgstr "duìxiàng '%s' bùshì yuán zǔ huò lièbiǎo"
|
||||
|
||||
@ -5899,12 +5951,6 @@ msgstr "zi bìxū jùyǒu xíngzhuàng (n_section,2)"
|
||||
#~ msgid "popitem(): dictionary is empty"
|
||||
#~ msgstr "dànchū xiàngmù (): Zìdiǎn wèi kōng"
|
||||
|
||||
#~ msgid "string index out of range"
|
||||
#~ msgstr "zìfú chuàn suǒyǐn chāochū fànwéi"
|
||||
|
||||
#~ msgid "string indices must be integers, not %s"
|
||||
#~ msgstr "zìfú chuàn zhǐshù bìxū shì zhěngshù, ér bùshì %s"
|
||||
|
||||
#, fuzzy
|
||||
#~ msgid "unknown format code '%c' for object of type '%s'"
|
||||
#~ msgstr "lèixíng '%s' duìxiàng wèizhī de géshì dàimǎ '%c'"
|
||||
|
1
main.c
1
main.c
@ -58,7 +58,6 @@
|
||||
#include "supervisor/shared/status_leds.h"
|
||||
#include "supervisor/shared/tick.h"
|
||||
#include "supervisor/shared/traceback.h"
|
||||
#include "supervisor/shared/translate/translate.h"
|
||||
#include "supervisor/shared/workflow.h"
|
||||
#include "supervisor/usb.h"
|
||||
#include "supervisor/workflow.h"
|
||||
|
11
mpy-cross/.gitignore
vendored
11
mpy-cross/.gitignore
vendored
@ -1,11 +0,0 @@
|
||||
# SPDX-FileCopyrightText: 2014 MicroPython & CircuitPython contributors (https://github.com/adafruit/circuitpython/graphs/contributors)
|
||||
#
|
||||
# SPDX-License-Identifier: MIT
|
||||
|
||||
/build-*
|
||||
/mpy-cross
|
||||
/mpy-cross.static
|
||||
/mpy-cross.static.exe
|
||||
/mpy-cross.static-raspbian
|
||||
/mpy-cross.fuzz
|
||||
/pitools
|
@ -1,24 +1,68 @@
|
||||
# SPDX-FileCopyrightText: 2014 MicroPython & CircuitPython contributors (https://github.com/adafruit/circuitpython/graphs/contributors)
|
||||
#
|
||||
# SPDX-License-Identifier: MIT
|
||||
include ../py/mkenv.mk
|
||||
|
||||
# The following is a temporary hack to forefully undefine vars that might have
|
||||
# be defined by a calling Makefile (from recursive make).
|
||||
# TODO: Find a better way to be able to call this Makefile recursively.
|
||||
ifneq ($(findstring undefine,$(.FEATURES)),)
|
||||
override undefine COPT
|
||||
override undefine CFLAGS_EXTRA
|
||||
override undefine LDFLAGS_EXTRA
|
||||
override undefine MICROPY_FORCE_32BIT
|
||||
override undefine CROSS_COMPILE
|
||||
override undefine FROZEN_DIR
|
||||
override undefine FROZEN_MPY_DIR
|
||||
override undefine USER_C_MODULES
|
||||
override undefine SRC_MOD
|
||||
override undefine BUILD
|
||||
override undefine PROG
|
||||
# define main target
|
||||
PROG ?= mpy-cross
|
||||
|
||||
# qstr definitions (must come before including py.mk)
|
||||
QSTR_DEFS = qstrdefsport.h
|
||||
|
||||
# OS name, for simple autoconfig
|
||||
UNAME_S := $(shell uname -s)
|
||||
|
||||
# include py core make definitions
|
||||
include $(TOP)/py/py.mk
|
||||
|
||||
INC += -I.
|
||||
INC += -I$(BUILD)
|
||||
INC += -I$(TOP)
|
||||
|
||||
# compiler settings
|
||||
CWARN = -Wall -Werror
|
||||
CWARN += -Wextra -Wno-unused-parameter -Wpointer-arith
|
||||
CFLAGS += $(INC) $(CWARN) -std=gnu99 $(COPT) $(CFLAGS_EXTRA)
|
||||
CFLAGS += -fdata-sections -ffunction-sections -fno-asynchronous-unwind-tables
|
||||
CFLAGS += -DCIRCUITPY
|
||||
|
||||
# Debugging/Optimization
|
||||
ifdef DEBUG
|
||||
CFLAGS += -g
|
||||
COPT = -O0
|
||||
else
|
||||
COPT = -Os #-DNDEBUG
|
||||
endif
|
||||
|
||||
include mpy-cross.mk
|
||||
CFLAGS += -g
|
||||
STRIP = :
|
||||
# On OSX, 'gcc' is a symlink to clang unless a real gcc is installed.
|
||||
# The unix port of MicroPython on OSX must be compiled with clang,
|
||||
# while cross-compile ports require gcc, so we test here for OSX and
|
||||
# if necessary override the value of 'CC' set in py/mkenv.mk
|
||||
ifeq ($(UNAME_S),Darwin)
|
||||
CC = clang
|
||||
# Use clang syntax for map file
|
||||
LDFLAGS_ARCH = -Wl,-map,$@.map -Wl,-dead_strip
|
||||
else
|
||||
# Use gcc syntax for map file
|
||||
LDFLAGS_ARCH = -Wl,-Map=$@.map,--cref -Wl,--gc-sections
|
||||
endif
|
||||
LDFLAGS += $(LDFLAGS_MOD) $(LDFLAGS_ARCH) -lm $(LDFLAGS_EXTRA)
|
||||
|
||||
# source files
|
||||
SRC_C = \
|
||||
main.c \
|
||||
gccollect.c \
|
||||
shared/runtime/gchelper_generic.c \
|
||||
supervisor/stub/safe_mode.c \
|
||||
supervisor/stub/stack.c \
|
||||
supervisor/shared/translate/translate.c
|
||||
|
||||
# Add fmode when compiling with mingw gcc
|
||||
COMPILER_TARGET := $(shell $(CC) -dumpmachine)
|
||||
ifneq (,$(findstring mingw,$(COMPILER_TARGET)))
|
||||
SRC_C += windows-fmode.c
|
||||
endif
|
||||
|
||||
OBJ = $(PY_CORE_O)
|
||||
OBJ += $(addprefix $(BUILD)/, $(SRC_C:.c=.o))
|
||||
|
||||
$(BUILD)/supervisor/shared/translate/translate.o: $(HEADER_BUILD)/qstrdefs.generated.h $(HEADER_BUILD)/compressed_translations.generated.h
|
||||
|
||||
include $(TOP)/py/mkrules.mk
|
||||
|
@ -6,4 +6,4 @@ PROG=mpy-cross.fuzz
|
||||
BUILD=build-static
|
||||
STATIC_BUILD=1
|
||||
CC=afl-clang-fast
|
||||
include mpy-cross.mk
|
||||
include Makefile
|
||||
|
@ -5,6 +5,6 @@
|
||||
PROG=mpy-cross-arm64
|
||||
BUILD=build-arm64
|
||||
|
||||
include mpy-cross.mk
|
||||
include Makefile
|
||||
# Because mpy-cross.mk unconditionally overwrites CC for Darwin, we must set it BELOW the inclusion
|
||||
CC := $(shell xcrun --find clang) -isysroot $(shell xcrun --show-sdk-path) -target arm64-apple-macos11
|
||||
|
@ -6,4 +6,4 @@ PROG=mpy-cross.static
|
||||
BUILD=build-static
|
||||
STATIC_BUILD=1
|
||||
|
||||
include mpy-cross.mk
|
||||
include Makefile
|
||||
|
@ -7,4 +7,4 @@ BUILD=build-static-aarch64
|
||||
STATIC_BUILD=1
|
||||
|
||||
CROSS_COMPILE = aarch64-linux-gnu-
|
||||
include mpy-cross.mk
|
||||
include Makefile
|
||||
|
@ -7,4 +7,4 @@ CROSS_COMPILE = x86_64-w64-mingw32-
|
||||
BUILD=build-static-mingw
|
||||
STATIC_BUILD=1
|
||||
|
||||
include mpy-cross.mk
|
||||
include Makefile
|
||||
|
@ -8,4 +8,4 @@ STATIC_BUILD=1
|
||||
|
||||
$(shell if ! [ -d pitools ]; then echo 1>&2 "Fetching pi build tools. This may take awhile."; git clone -q https://github.com/raspberrypi/tools.git --depth=1 pitools; fi)
|
||||
CROSS_COMPILE = pitools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin/arm-linux-gnueabihf-
|
||||
include mpy-cross.mk
|
||||
include Makefile
|
||||
|
@ -73,8 +73,9 @@ STATIC int compile_and_save(const char *file, const char *output_file, const cha
|
||||
#endif
|
||||
|
||||
mp_parse_tree_t parse_tree = mp_parse(lex, MP_PARSE_FILE_INPUT);
|
||||
mp_module_context_t *ctx = m_new_obj(mp_module_context_t);
|
||||
mp_compiled_module_t cm = mp_compile_to_raw_code(&parse_tree, source_name, false, ctx);
|
||||
mp_compiled_module_t cm;
|
||||
cm.context = m_new_obj(mp_module_context_t);
|
||||
mp_compile_to_raw_code(&parse_tree, source_name, false, &cm);
|
||||
|
||||
vstr_t vstr;
|
||||
vstr_init(&vstr, 16);
|
||||
@ -181,6 +182,15 @@ STATIC void pre_process_options(int argc, char **argv) {
|
||||
}
|
||||
}
|
||||
|
||||
STATIC char *backslash_to_forwardslash(char *path) {
|
||||
for (char *p = path; p != NULL && *p != '\0'; ++p) {
|
||||
if (*p == '\\') {
|
||||
*p = '/';
|
||||
}
|
||||
}
|
||||
return path;
|
||||
}
|
||||
|
||||
MP_NOINLINE int main_(int argc, char **argv) {
|
||||
mp_stack_set_limit(40000 * (sizeof(void *) / 4));
|
||||
|
||||
@ -203,19 +213,9 @@ MP_NOINLINE int main_(int argc, char **argv) {
|
||||
|
||||
// set default compiler configuration
|
||||
mp_dynamic_compiler.small_int_bits = 31;
|
||||
#if defined(__i386__)
|
||||
mp_dynamic_compiler.native_arch = MP_NATIVE_ARCH_X86;
|
||||
mp_dynamic_compiler.nlr_buf_num_regs = MICROPY_NLR_NUM_REGS_X86;
|
||||
#elif defined(__x86_64__)
|
||||
mp_dynamic_compiler.native_arch = MP_NATIVE_ARCH_X64;
|
||||
mp_dynamic_compiler.nlr_buf_num_regs = MAX(MICROPY_NLR_NUM_REGS_X64, MICROPY_NLR_NUM_REGS_X64_WIN);
|
||||
#elif defined(__arm__) && !defined(__thumb2__)
|
||||
mp_dynamic_compiler.native_arch = MP_NATIVE_ARCH_ARMV6;
|
||||
mp_dynamic_compiler.nlr_buf_num_regs = MICROPY_NLR_NUM_REGS_ARM_THUMB_FP;
|
||||
#else
|
||||
// don't support native emitter unless -march is specified
|
||||
mp_dynamic_compiler.native_arch = MP_NATIVE_ARCH_NONE;
|
||||
mp_dynamic_compiler.nlr_buf_num_regs = 0;
|
||||
#endif
|
||||
|
||||
const char *input_file = NULL;
|
||||
const char *output_file = NULL;
|
||||
@ -228,7 +228,7 @@ MP_NOINLINE int main_(int argc, char **argv) {
|
||||
a += 1;
|
||||
} else if (strcmp(argv[a], "--version") == 0) {
|
||||
printf("CircuitPython " MICROPY_GIT_TAG " on " MICROPY_BUILD_DATE
|
||||
"; mpy-cross emitting mpy v" MP_STRINGIFY(MPY_VERSION) "-CircuitPython\n");
|
||||
"; mpy-cross emitting mpy v" MP_STRINGIFY(MPY_VERSION) "." MP_STRINGIFY(MPY_SUB_VERSION) "\n");
|
||||
return 0;
|
||||
} else if (strcmp(argv[a], "-v") == 0) {
|
||||
mp_verbose_flag++;
|
||||
@ -251,7 +251,7 @@ MP_NOINLINE int main_(int argc, char **argv) {
|
||||
exit(usage(argv));
|
||||
}
|
||||
a += 1;
|
||||
source_file = argv[a];
|
||||
source_file = backslash_to_forwardslash(argv[a]);
|
||||
} else if (strncmp(argv[a], "-msmall-int-bits=", sizeof("-msmall-int-bits=") - 1) == 0) {
|
||||
char *end;
|
||||
mp_dynamic_compiler.small_int_bits =
|
||||
@ -292,6 +292,20 @@ MP_NOINLINE int main_(int argc, char **argv) {
|
||||
} else if (strcmp(arch, "xtensawin") == 0) {
|
||||
mp_dynamic_compiler.native_arch = MP_NATIVE_ARCH_XTENSAWIN;
|
||||
mp_dynamic_compiler.nlr_buf_num_regs = MICROPY_NLR_NUM_REGS_XTENSAWIN;
|
||||
} else if (strcmp(arch, "host") == 0) {
|
||||
#if defined(__i386__) || defined(_M_IX86)
|
||||
mp_dynamic_compiler.native_arch = MP_NATIVE_ARCH_X86;
|
||||
mp_dynamic_compiler.nlr_buf_num_regs = MICROPY_NLR_NUM_REGS_X86;
|
||||
#elif defined(__x86_64__) || defined(_M_X64)
|
||||
mp_dynamic_compiler.native_arch = MP_NATIVE_ARCH_X64;
|
||||
mp_dynamic_compiler.nlr_buf_num_regs = MAX(MICROPY_NLR_NUM_REGS_X64, MICROPY_NLR_NUM_REGS_X64_WIN);
|
||||
#elif defined(__arm__) && !defined(__thumb2__)
|
||||
mp_dynamic_compiler.native_arch = MP_NATIVE_ARCH_ARMV6;
|
||||
mp_dynamic_compiler.nlr_buf_num_regs = MICROPY_NLR_NUM_REGS_ARM_THUMB_FP;
|
||||
#else
|
||||
mp_printf(&mp_stderr_print, "unable to determine host architecture for -march=host\n");
|
||||
exit(1);
|
||||
#endif
|
||||
} else {
|
||||
return usage(argv);
|
||||
}
|
||||
@ -303,7 +317,7 @@ MP_NOINLINE int main_(int argc, char **argv) {
|
||||
mp_printf(&mp_stderr_print, "multiple input files\n");
|
||||
exit(1);
|
||||
}
|
||||
input_file = argv[a];
|
||||
input_file = backslash_to_forwardslash(argv[a]);
|
||||
}
|
||||
}
|
||||
|
||||
@ -339,7 +353,3 @@ void nlr_jump_fail(void *val) {
|
||||
fprintf(stderr, "FATAL: uncaught NLR %p\n", val);
|
||||
exit(1);
|
||||
}
|
||||
|
||||
void serial_write(const char *text) {
|
||||
printf("%s", text);
|
||||
}
|
||||
|
@ -166,7 +166,7 @@ typedef long mp_off_t;
|
||||
#define MP_PLAT_PRINT_STRN(str, len) (void)0
|
||||
|
||||
// We need to provide a declaration/definition of alloca()
|
||||
#ifdef __FreeBSD__
|
||||
#if defined(__FreeBSD__) || defined(__NetBSD__)
|
||||
#include <stdlib.h>
|
||||
#elif defined(_WIN32)
|
||||
#include <malloc.h>
|
||||
@ -182,6 +182,7 @@ typedef long mp_off_t;
|
||||
#define MP_ENDIANNESS_LITTLE (1)
|
||||
#define NORETURN __declspec(noreturn)
|
||||
#define MP_NOINLINE __declspec(noinline)
|
||||
#define MP_ALWAYSINLINE __forceinline
|
||||
#define MP_LIKELY(x) (x)
|
||||
#define MP_UNLIKELY(x) (x)
|
||||
#define MICROPY_PORT_CONSTANTS { MP_ROM_QSTR(MP_QSTR_dummy), MP_ROM_PTR(NULL) }
|
||||
|
@ -1,85 +0,0 @@
|
||||
# SPDX-FileCopyrightText: 2014 MicroPython & CircuitPython contributors (https://github.com/adafruit/circuitpython/graphs/contributors)
|
||||
#
|
||||
# SPDX-License-Identifier: MIT
|
||||
|
||||
include ../py/mkenv.mk
|
||||
|
||||
# define main target
|
||||
|
||||
PROG ?= mpy-cross
|
||||
|
||||
# qstr definitions (must come before including py.mk)
|
||||
QSTR_DEFS = qstrdefsport.h
|
||||
|
||||
# OS name, for simple autoconfig
|
||||
UNAME_S := $(shell uname -s)
|
||||
|
||||
# include py core make definitions
|
||||
include $(TOP)/py/py.mk
|
||||
|
||||
INC += -I.
|
||||
INC += -I$(TOP)
|
||||
INC += -I$(BUILD)
|
||||
|
||||
# compiler settings
|
||||
CWARN = -Wall -Werror
|
||||
CWARN += -Wpointer-arith -Wuninitialized
|
||||
CFLAGS = $(INC) $(CWARN) -std=gnu99 $(CFLAGS_MOD) $(COPT) $(CFLAGS_EXTRA)
|
||||
CFLAGS += -fdata-sections -ffunction-sections -fno-asynchronous-unwind-tables
|
||||
|
||||
# Build a static executable.
|
||||
# Useful for Windows builds, etc., that must run on multiple operating system versions.
|
||||
ifdef STATIC_BUILD
|
||||
CFLAGS += -static -static-libgcc -static-libstdc++
|
||||
endif
|
||||
|
||||
|
||||
# Debugging/Optimization
|
||||
ifdef DEBUG
|
||||
CFLAGS += -g
|
||||
COPT = -O0
|
||||
else
|
||||
COPT = -Os #-DNDEBUG
|
||||
endif
|
||||
|
||||
# On OSX, 'gcc' is a symlink to clang unless a real gcc is installed.
|
||||
# The unix port of MicroPython on OSX must be compiled with clang,
|
||||
# while cross-compile ports require gcc, so we test here for OSX and
|
||||
# if necessary override the value of 'CC' set in py/mkenv.mk
|
||||
ifeq ($(UNAME_S),Darwin)
|
||||
CC = clang
|
||||
# Use clang syntax for map file
|
||||
LDFLAGS_ARCH = -Wl,-map,$@.map -Wl,-dead_strip
|
||||
else
|
||||
# Use gcc syntax for map file
|
||||
LDFLAGS_ARCH = -Wl,-Map=$@.map,--cref -Wl,--gc-sections
|
||||
endif
|
||||
LDFLAGS = $(LDFLAGS_MOD) $(LDFLAGS_ARCH) -lm $(LDFLAGS_EXTRA)
|
||||
|
||||
ifdef STATIC_BUILD
|
||||
LDFLAGS += -static -static-libgcc -static-libstdc++
|
||||
endif
|
||||
|
||||
CFLAGS += -DCIRCUITPY=1
|
||||
|
||||
# source files
|
||||
SRC_C += \
|
||||
main.c \
|
||||
gccollect.c \
|
||||
shared/runtime/gchelper_generic.c \
|
||||
supervisor/stub/safe_mode.c \
|
||||
supervisor/stub/stack.c \
|
||||
supervisor/shared/translate/translate.c
|
||||
|
||||
# Add fmode when compiling with mingw gcc
|
||||
COMPILER_TARGET := $(shell $(CC) -dumpmachine)
|
||||
ifneq (,$(findstring mingw,$(COMPILER_TARGET)))
|
||||
SRC_C += fmode.c
|
||||
endif
|
||||
|
||||
OBJ = $(PY_CORE_O)
|
||||
OBJ += $(addprefix $(BUILD)/, $(SRC_C:.c=.o))
|
||||
|
||||
$(BUILD)/supervisor/shared/translate/translate.o: $(HEADER_BUILD)/qstrdefs.generated.h $(HEADER_BUILD)/compressed_translations.generated.h
|
||||
|
||||
include $(TOP)/py/mkrules.mk
|
@ -24,7 +24,6 @@
|
||||
<PyBuildingMpyCross>True</PyBuildingMpyCross>
|
||||
<PyBuildDir>$(MSBuildThisFileDirectory)build\</PyBuildDir>
|
||||
<PyIncDirs>$(MSBuildThisFileDirectory)</PyIncDirs>
|
||||
<PyTargetDir>$(MSBuildThisFileDirectory)</PyTargetDir>
|
||||
<PyMsvcDir>$(MSBuildThisFileDirectory)..\ports\windows\msvc\</PyMsvcDir>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||
|
151
mpy-cross/mpy_cross/__init__.py
Normal file
151
mpy-cross/mpy_cross/__init__.py
Normal file
@ -0,0 +1,151 @@
|
||||
#!/usr/bin/env python3
|
||||
#
|
||||
# This file is part of the MicroPython project, http://micropython.org/
|
||||
#
|
||||
# The MIT License (MIT)
|
||||
#
|
||||
# Copyright (c) 2022 Andrew Leech
|
||||
# Copyright (c) 2022 Jim Mussared
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
# of this software and associated documentation files (the "Software"), to deal
|
||||
# in the Software without restriction, including without limitation the rights
|
||||
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
# copies of the Software, and to permit persons to whom the Software is
|
||||
# furnished to do so, subject to the following conditions:
|
||||
#
|
||||
# The above copyright notice and this permission notice shall be included in
|
||||
# all copies or substantial portions of the Software.
|
||||
#
|
||||
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
# THE SOFTWARE.
|
||||
|
||||
from __future__ import print_function
|
||||
import os
|
||||
import re
|
||||
import stat
|
||||
import subprocess
|
||||
|
||||
NATIVE_ARCHS = {
|
||||
"NATIVE_ARCH_NONE": "",
|
||||
"NATIVE_ARCH_X86": "x86",
|
||||
"NATIVE_ARCH_X64": "x64",
|
||||
"NATIVE_ARCH_ARMV6": "armv6",
|
||||
"NATIVE_ARCH_ARMV6M": "armv6m",
|
||||
"NATIVE_ARCH_ARMV7M": "armv7m",
|
||||
"NATIVE_ARCH_ARMV7EM": "armv7em",
|
||||
"NATIVE_ARCH_ARMV7EMSP": "armv7emsp",
|
||||
"NATIVE_ARCH_ARMV7EMDP": "armv7emdp",
|
||||
"NATIVE_ARCH_XTENSA": "xtensa",
|
||||
"NATIVE_ARCH_XTENSAWIN": "xtensawin",
|
||||
}
|
||||
|
||||
globals().update(NATIVE_ARCHS)
|
||||
|
||||
__all__ = ["version", "compile", "run", "CrossCompileError"] + list(NATIVE_ARCHS.keys())
|
||||
|
||||
|
||||
class CrossCompileError(Exception):
|
||||
pass
|
||||
|
||||
|
||||
_VERSION_RE = re.compile("mpy-cross emitting mpy v([0-9]+)(?:.([0-9]+))?")
|
||||
|
||||
|
||||
def _find_mpy_cross_binary(mpy_cross):
|
||||
if mpy_cross:
|
||||
return mpy_cross
|
||||
return os.path.abspath(os.path.join(os.path.dirname(__file__), "../build/mpy-cross"))
|
||||
|
||||
|
||||
def mpy_version(mpy_cross=None):
|
||||
"""
|
||||
Get the version and sub-version of the .mpy file format generated by this version of mpy-cross.
|
||||
|
||||
Returns: A tuple of `(mpy_version, mpy_sub_version)`
|
||||
Optional keyword arguments:
|
||||
- mpy_cross: Specific mpy-cross binary to use
|
||||
"""
|
||||
version_info = run(["--version"], mpy_cross=mpy_cross)
|
||||
match = re.search(_VERSION_RE, version_info)
|
||||
mpy_version, mpy_sub_version = int(match.group(1)), int(match.group(2) or "0")
|
||||
return (
|
||||
mpy_version,
|
||||
mpy_sub_version,
|
||||
)
|
||||
|
||||
|
||||
def compile(src, dest=None, src_path=None, opt=None, march=None, mpy_cross=None, extra_args=None):
|
||||
"""
|
||||
Compile the specified .py file with mpy-cross.
|
||||
|
||||
Returns: Standard output from mpy-cross as a string.
|
||||
|
||||
Required arguments:
|
||||
- src: The path to the .py file
|
||||
|
||||
Optional keyword arguments:
|
||||
- dest: The output .mpy file. Defaults to `src` (with .mpy extension)
|
||||
- src_path: The path to embed in the .mpy file (defaults to `src`)
|
||||
- opt: Optimisation level (0-3, default 0)
|
||||
- march: One of the `NATIVE_ARCH_*` constants (defaults to NATIVE_ARCH_NONE)
|
||||
- mpy_cross: Specific mpy-cross binary to use
|
||||
- extra_args: Additional arguments to pass to mpy-cross (e.g. `["-X", "emit=native"]`)
|
||||
"""
|
||||
if not src:
|
||||
raise ValueError("src is required")
|
||||
if not os.path.exists(src):
|
||||
raise CrossCompileError("Input .py file not found: {}.".format(src_py))
|
||||
|
||||
args = []
|
||||
|
||||
if src_path:
|
||||
args += ["-s", src_path]
|
||||
|
||||
if dest:
|
||||
args += ["-o", dest]
|
||||
|
||||
if march:
|
||||
args += ["-march=" + march]
|
||||
|
||||
if opt is not None:
|
||||
args += ["-O{}".format(opt)]
|
||||
|
||||
if extra_args:
|
||||
args += extra_args
|
||||
|
||||
args += [src]
|
||||
|
||||
run(args, mpy_cross)
|
||||
|
||||
|
||||
def run(args, mpy_cross=None):
|
||||
"""
|
||||
Run mpy-cross with the specified command line arguments.
|
||||
Prefer to use `compile()` instead.
|
||||
|
||||
Returns: Standard output from mpy-cross as a string.
|
||||
|
||||
Optional keyword arguments:
|
||||
- mpy_cross: Specific mpy-cross binary to use
|
||||
"""
|
||||
mpy_cross = _find_mpy_cross_binary(mpy_cross)
|
||||
|
||||
if not os.path.exists(mpy_cross):
|
||||
raise CrossCompileError("mpy-cross binary not found at {}.".format(mpy_cross))
|
||||
|
||||
try:
|
||||
st = os.stat(mpy_cross)
|
||||
os.chmod(mpy_cross, st.st_mode | stat.S_IEXEC)
|
||||
except OSError:
|
||||
pass
|
||||
|
||||
try:
|
||||
return subprocess.check_output([mpy_cross] + args, stderr=subprocess.STDOUT).decode()
|
||||
except subprocess.CalledProcessError as er:
|
||||
raise CrossCompileError(er.output.decode())
|
38
mpy-cross/mpy_cross/__main__.py
Normal file
38
mpy-cross/mpy_cross/__main__.py
Normal file
@ -0,0 +1,38 @@
|
||||
#!/usr/bin/env python3
|
||||
#
|
||||
# This file is part of the MicroPython project, http://micropython.org/
|
||||
#
|
||||
# The MIT License (MIT)
|
||||
#
|
||||
# Copyright (c) 2022 Andrew Leech
|
||||
# Copyright (c) 2022 Jim Mussared
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
# of this software and associated documentation files (the "Software"), to deal
|
||||
# in the Software without restriction, including without limitation the rights
|
||||
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
# copies of the Software, and to permit persons to whom the Software is
|
||||
# furnished to do so, subject to the following conditions:
|
||||
#
|
||||
# The above copyright notice and this permission notice shall be included in
|
||||
# all copies or substantial portions of the Software.
|
||||
#
|
||||
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
# THE SOFTWARE.
|
||||
|
||||
from __future__ import print_function
|
||||
import argparse
|
||||
import sys
|
||||
|
||||
from . import run, CrossCompileError
|
||||
|
||||
try:
|
||||
print(run(sys.argv[1:]))
|
||||
except CrossCompileError as er:
|
||||
print(er.args[0], file=sys.stderr)
|
||||
raise SystemExit(1)
|
@ -3,7 +3,7 @@
|
||||
*
|
||||
* The MIT License (MIT)
|
||||
*
|
||||
* Copyright (c) 2018 Scott Shawcroft for Adafruit Industries LLC
|
||||
* Copyright (c) 2013-2016 Damien P. George
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
@ -23,9 +23,27 @@
|
||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
* THE SOFTWARE.
|
||||
*/
|
||||
#ifndef MICROPY_INCLUDED_LITEX_INTERNAL_FLASH_ROOT_POINTERS_H
|
||||
#define MICROPY_INCLUDED_LITEX_INTERNAL_FLASH_ROOT_POINTERS_H
|
||||
|
||||
#define FLASH_ROOT_POINTERS
|
||||
#include "fmode.h"
|
||||
#include "py/mpconfig.h"
|
||||
#include <fcntl.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
#endif // MICROPY_INCLUDED_LITEX_INTERNAL_FLASH_ROOT_POINTERS_H
|
||||
// Workaround for setting file translation mode: we must distinguish toolsets
|
||||
// since mingw has no _set_fmode, and altering msvc's _fmode directly has no effect
|
||||
STATIC int set_fmode_impl(int mode) {
|
||||
#ifndef _MSC_VER
|
||||
_fmode = mode;
|
||||
return 0;
|
||||
#else
|
||||
return _set_fmode(mode);
|
||||
#endif
|
||||
}
|
||||
|
||||
void set_fmode_binary(void) {
|
||||
set_fmode_impl(O_BINARY);
|
||||
}
|
||||
|
||||
void set_fmode_text(void) {
|
||||
set_fmode_impl(O_TEXT);
|
||||
}
|
@ -362,7 +362,7 @@ OBJ_EXTRA_ORDER_DEPS += $(HEADER_BUILD)/candata.h
|
||||
$(HEADER_BUILD)/candata.h: tools/mkcandata.py | $(HEADER_BUILD)
|
||||
$(Q)$(PYTHON) $< > $@
|
||||
|
||||
SRC_QSTR += $(SRC_C) $(SRC_SUPERVISOR) $(SRC_COMMON_HAL_EXPANDED) $(SRC_SHARED_MODULE_EXPANDED)
|
||||
SRC_QSTR += $(SRC_C) $(SRC_SUPERVISOR) $(SRC_COMMON_HAL_EXPANDED) $(SRC_SHARED_MODULE_EXPANDED) $(SRC_CIRCUITPY_COMMON)
|
||||
# Sources that only hold QSTRs after pre-processing.
|
||||
SRC_QSTR_PREPROCESSOR += peripherals/samd/$(PERIPHERALS_CHIP_FAMILY)/clocks.c
|
||||
|
||||
|
@ -432,4 +432,6 @@ void audio_dma_evsys_handler(void) {
|
||||
}
|
||||
}
|
||||
|
||||
MP_REGISTER_ROOT_POINTER(mp_obj_t playing_audio[AUDIO_DMA_CHANNEL_COUNT]);
|
||||
|
||||
#endif
|
||||
|
@ -128,12 +128,13 @@ STATIC const mp_rom_map_elem_t samd_clock_locals_dict_table[] = {
|
||||
|
||||
STATIC MP_DEFINE_CONST_DICT(samd_clock_locals_dict, samd_clock_locals_dict_table);
|
||||
|
||||
const mp_obj_type_t samd_clock_type = {
|
||||
{ &mp_type_type },
|
||||
.name = MP_QSTR_Clock,
|
||||
.print = samd_clock_print,
|
||||
.locals_dict = (mp_obj_t)&samd_clock_locals_dict,
|
||||
};
|
||||
MP_DEFINE_CONST_OBJ_TYPE(
|
||||
samd_clock_type,
|
||||
MP_QSTR_Clock,
|
||||
MP_TYPE_FLAG_NONE,
|
||||
print, samd_clock_print,
|
||||
locals_dict, &samd_clock_locals_dict
|
||||
);
|
||||
|
||||
#ifdef SAMD21
|
||||
|
||||
|
@ -35,7 +35,6 @@
|
||||
#include "shared-bindings/digitalio/DigitalInOut.h"
|
||||
#include "shared-bindings/util.h"
|
||||
#include "samd/timers.h"
|
||||
#include "supervisor/shared/translate/translate.h"
|
||||
#include "timer_handler.h"
|
||||
|
||||
|
||||
|
@ -37,7 +37,6 @@
|
||||
#include "samd/adc.h"
|
||||
#include "shared-bindings/analogio/AnalogIn.h"
|
||||
#include "shared-bindings/microcontroller/Pin.h"
|
||||
#include "supervisor/shared/translate/translate.h"
|
||||
|
||||
#include "atmel_start_pins.h"
|
||||
#include "hal/include/hal_adc_sync.h"
|
||||
|
@ -33,7 +33,6 @@
|
||||
#include "shared-bindings/analogio/AnalogOut.h"
|
||||
#include "shared-bindings/audioio/AudioOut.h"
|
||||
#include "shared-bindings/microcontroller/Pin.h"
|
||||
#include "supervisor/shared/translate/translate.h"
|
||||
|
||||
#include "atmel_start_pins.h"
|
||||
#include "hal/include/hal_dac_sync.h"
|
||||
|
@ -40,7 +40,6 @@
|
||||
#include "shared-bindings/audiobusio/I2SOut.h"
|
||||
#include "shared-bindings/audiocore/RawSample.h"
|
||||
#include "shared-bindings/microcontroller/Pin.h"
|
||||
#include "supervisor/shared/translate/translate.h"
|
||||
|
||||
#include "atmel_start_pins.h"
|
||||
#include "hal/include/hal_gpio.h"
|
||||
|
@ -37,7 +37,6 @@
|
||||
#include "shared-bindings/audiobusio/PDMIn.h"
|
||||
#include "shared-bindings/microcontroller/__init__.h"
|
||||
#include "shared-bindings/microcontroller/Pin.h"
|
||||
#include "supervisor/shared/translate/translate.h"
|
||||
|
||||
#include "atmel_start_pins.h"
|
||||
#include "hal/include/hal_gpio.h"
|
||||
|
@ -35,7 +35,6 @@
|
||||
#include "shared-bindings/audioio/AudioOut.h"
|
||||
#include "shared-bindings/microcontroller/__init__.h"
|
||||
#include "shared-bindings/microcontroller/Pin.h"
|
||||
#include "supervisor/shared/translate/translate.h"
|
||||
|
||||
#include "atmel_start_pins.h"
|
||||
#include "hal/include/hal_gpio.h"
|
||||
|
@ -35,7 +35,6 @@
|
||||
#include "samd/sercom.h"
|
||||
#include "shared-bindings/microcontroller/__init__.h"
|
||||
#include "shared-bindings/microcontroller/Pin.h"
|
||||
#include "supervisor/shared/translate/translate.h"
|
||||
|
||||
#include "common-hal/busio/__init__.h"
|
||||
|
||||
|
@ -33,7 +33,6 @@
|
||||
#include "peripheral_clk_config.h"
|
||||
|
||||
#include "supervisor/board.h"
|
||||
#include "supervisor/shared/translate/translate.h"
|
||||
#include "common-hal/busio/__init__.h"
|
||||
|
||||
#include "hal/include/hal_gpio.h"
|
||||
|
@ -35,7 +35,6 @@
|
||||
#include "py/mperrno.h"
|
||||
#include "py/runtime.h"
|
||||
#include "py/stream.h"
|
||||
#include "supervisor/shared/translate/translate.h"
|
||||
#include "supervisor/shared/tick.h"
|
||||
|
||||
#include "hpl_sercom_config.h"
|
||||
|
@ -7,7 +7,6 @@
|
||||
#include "eic_handler.h"
|
||||
#include "samd/external_interrupts.h"
|
||||
#include "py/runtime.h"
|
||||
#include "supervisor/shared/translate/translate.h"
|
||||
|
||||
void common_hal_countio_counter_construct(countio_counter_obj_t *self,
|
||||
const mcu_pin_obj_t *pin, countio_edge_t edge, digitalio_pull_t pull) {
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user