mirror of
https://github.com/platformio/platformio-core.git
synced 2025-07-29 17:47:14 +02:00
Merge branch 'release/v2.9.1'
This commit is contained in:
@ -4,6 +4,12 @@ Release Notes
|
||||
PlatformIO 2.0
|
||||
--------------
|
||||
|
||||
2.9.1 (2016-04-30)
|
||||
~~~~~~~~~~~~~~~~~~
|
||||
|
||||
* Handle prototype pointers while converting ``*.ino`` to ``.cpp``
|
||||
(`issue #639 <https://github.com/platformio/platformio/issues/639>`_)
|
||||
|
||||
2.9.0 (2016-04-28)
|
||||
~~~~~~~~~~~~~~~~~~
|
||||
|
||||
|
@ -224,6 +224,13 @@ Arduino
|
||||
- 32 Kb
|
||||
- 2 Kb
|
||||
|
||||
* - ``chiwawa``
|
||||
- `Arduino Industrial 101 <http://www.arduino.org/products/boards/4-arduino-boards/arduino-industrial-101>`_
|
||||
- ATMEGA32U4
|
||||
- 16 MHz
|
||||
- 32 Kb
|
||||
- 2.5 Kb
|
||||
|
||||
* - ``diecimilaatmega168``
|
||||
- `Arduino Duemilanove or Diecimila ATmega168 <http://arduino.cc/en/Main/ArduinoBoardDiecimila>`_
|
||||
- ATMEGA168
|
||||
@ -239,28 +246,28 @@ Arduino
|
||||
- 2 Kb
|
||||
|
||||
* - ``due``
|
||||
- `Arduino Due (Programming Port) <http://arduino.cc/en/Main/arduinoBoardDue>`_
|
||||
- `Arduino Due (Programming Port) <http://www.arduino.org/products/boards/4-arduino-boards/arduino-due>`_
|
||||
- SAM3X8E
|
||||
- 84 MHz
|
||||
- 512 Kb
|
||||
- 32 Kb
|
||||
|
||||
* - ``dueUSB``
|
||||
- `Arduino Due (USB Native Port) <http://arduino.cc/en/Main/arduinoBoardDue>`_
|
||||
- `Arduino Due (USB Native Port) <http://www.arduino.org/products/boards/4-arduino-boards/arduino-due>`_
|
||||
- SAM3X8E
|
||||
- 84 MHz
|
||||
- 512 Kb
|
||||
- 32 Kb
|
||||
|
||||
* - ``esplora``
|
||||
- `Arduino Esplora <http://arduino.cc/en/Main/ArduinoBoardEsplora>`_
|
||||
- `Arduino Esplora <http://www.arduino.org/products/boards/4-arduino-boards/arduino-esplora>`_
|
||||
- ATMEGA32U4
|
||||
- 16 MHz
|
||||
- 32 Kb
|
||||
- 2.5 Kb
|
||||
|
||||
* - ``ethernet``
|
||||
- `Arduino Ethernet <http://arduino.cc/en/Main/ArduinoBoardEthernet>`_
|
||||
- `Arduino Ethernet <http://www.arduino.org/products/boards/4-arduino-boards/arduino-ethernet>`_
|
||||
- ATMEGA328P
|
||||
- 16 MHz
|
||||
- 32 Kb
|
||||
@ -274,7 +281,14 @@ Arduino
|
||||
- 2 Kb
|
||||
|
||||
* - ``leonardo``
|
||||
- `Arduino Leonardo <http://arduino.cc/en/Main/arduinoBoardLeonardo>`_
|
||||
- `Arduino Leonardo <http://www.arduino.org/products/boards/4-arduino-boards/arduino-leonardo>`_
|
||||
- ATMEGA32U4
|
||||
- 16 MHz
|
||||
- 32 Kb
|
||||
- 2.5 Kb
|
||||
|
||||
* - ``leonardoeth``
|
||||
- `Arduino Leonardo ETH <http://www.arduino.org/products/boards/4-arduino-boards/arduino-leonardo-eth>`_
|
||||
- ATMEGA32U4
|
||||
- 16 MHz
|
||||
- 32 Kb
|
||||
@ -295,28 +309,28 @@ Arduino
|
||||
- 2 Kb
|
||||
|
||||
* - ``megaADK``
|
||||
- `Arduino Mega ADK <http://arduino.cc/en/Main/ArduinoBoardMegaADK>`_
|
||||
- `Arduino Mega ADK <http://www.arduino.org/products/boards/4-arduino-boards/arduino-mega-adk>`_
|
||||
- ATMEGA2560
|
||||
- 16 MHz
|
||||
- 256 Kb
|
||||
- 8 Kb
|
||||
|
||||
* - ``megaatmega1280``
|
||||
- `Arduino Mega or Mega 2560 ATmega1280 <http://arduino.cc/en/Main/arduinoBoardMega>`_
|
||||
- `Arduino Mega or Mega 2560 ATmega1280 <http://www.arduino.org/products/boards/4-arduino-boards/arduino-mega-2560>`_
|
||||
- ATMEGA1280
|
||||
- 16 MHz
|
||||
- 128 Kb
|
||||
- 8 Kb
|
||||
|
||||
* - ``megaatmega2560``
|
||||
- `Arduino Mega or Mega 2560 ATmega2560 (Mega 2560) <http://arduino.cc/en/Main/arduinoBoardMega2560>`_
|
||||
- `Arduino Mega or Mega 2560 ATmega2560 (Mega 2560) <http://www.arduino.org/products/boards/4-arduino-boards/arduino-mega-2560>`_
|
||||
- ATMEGA2560
|
||||
- 16 MHz
|
||||
- 256 Kb
|
||||
- 8 Kb
|
||||
|
||||
* - ``micro``
|
||||
- `Arduino Micro <http://arduino.cc/en/Main/ArduinoBoardMicro>`_
|
||||
- `Arduino Micro <http://www.arduino.org/products/boards/4-arduino-boards/arduino-micro>`_
|
||||
- ATMEGA32U4
|
||||
- 16 MHz
|
||||
- 32 Kb
|
||||
@ -337,14 +351,14 @@ Arduino
|
||||
- 2 Kb
|
||||
|
||||
* - ``nanoatmega168``
|
||||
- `Arduino Nano ATmega168 <http://arduino.cc/en/Main/ArduinoBoardNano>`_
|
||||
- `Arduino Nano ATmega168 <http://www.arduino.org/products/boards/4-arduino-boards/arduino-nano>`_
|
||||
- ATMEGA168
|
||||
- 16 MHz
|
||||
- 16 Kb
|
||||
- 1 Kb
|
||||
|
||||
* - ``nanoatmega328``
|
||||
- `Arduino Nano ATmega328 <http://arduino.cc/en/Main/ArduinoBoardNano>`_
|
||||
- `Arduino Nano ATmega328 <http://www.arduino.org/products/boards/4-arduino-boards/arduino-nano>`_
|
||||
- ATMEGA328P
|
||||
- 16 MHz
|
||||
- 32 Kb
|
||||
@ -379,28 +393,35 @@ Arduino
|
||||
- 2 Kb
|
||||
|
||||
* - ``robotControl``
|
||||
- `Arduino Robot Control <http://arduino.cc/en/Main/Robot>`_
|
||||
- `Arduino Robot Control <http://www.arduino.org/products/boards/4-arduino-boards/arduino-robot>`_
|
||||
- ATMEGA32U4
|
||||
- 16 MHz
|
||||
- 32 Kb
|
||||
- 2.5 Kb
|
||||
|
||||
* - ``robotMotor``
|
||||
- `Arduino Robot Motor <http://arduino.cc/en/Main/Robot>`_
|
||||
- `Arduino Robot Motor <http://www.arduino.org/products/boards/4-arduino-boards/arduino-robot>`_
|
||||
- ATMEGA32U4
|
||||
- 16 MHz
|
||||
- 32 Kb
|
||||
- 2.5 Kb
|
||||
|
||||
* - ``uno``
|
||||
- `Arduino Uno <http://arduino.cc/en/Main/ArduinoBoardUno>`_
|
||||
- `Arduino Uno <http://www.arduino.org/products/boards/4-arduino-boards/arduino-uno>`_
|
||||
- ATMEGA328P
|
||||
- 16 MHz
|
||||
- 32 Kb
|
||||
- 2 Kb
|
||||
|
||||
* - ``yun``
|
||||
- `Arduino Yun <http://arduino.cc/en/Main/ArduinoBoardYun>`_
|
||||
- `Arduino Yun <http://www.arduino.org/products/boards/4-arduino-boards/arduino-yun>`_
|
||||
- ATMEGA32U4
|
||||
- 16 MHz
|
||||
- 32 Kb
|
||||
- 2.5 Kb
|
||||
|
||||
* - ``yunmini``
|
||||
- `Arduino Yun Mini <http://www.arduino.org/products/boards/4-arduino-boards/arduino-yun-mini>`_
|
||||
- ATMEGA32U4
|
||||
- 16 MHz
|
||||
- 32 Kb
|
||||
@ -897,6 +918,26 @@ LightUp
|
||||
- 32 Kb
|
||||
- 2.5 Kb
|
||||
|
||||
Linino
|
||||
~~~~~~
|
||||
|
||||
.. list-table::
|
||||
:header-rows: 1
|
||||
|
||||
* - Type ``board``
|
||||
- Name
|
||||
- Microcontroller
|
||||
- Frequency
|
||||
- Flash
|
||||
- RAM
|
||||
|
||||
* - ``one``
|
||||
- `Linino One <http://www.linino.org/portfolio/linino-one/>`_
|
||||
- ATMEGA32U4
|
||||
- 16 MHz
|
||||
- 32 Kb
|
||||
- 2.5 Kb
|
||||
|
||||
LowPowerLab
|
||||
~~~~~~~~~~~
|
||||
|
||||
|
@ -78,28 +78,28 @@ Arduino
|
||||
- RAM
|
||||
|
||||
* - ``due``
|
||||
- `Arduino Due (Programming Port) <http://arduino.cc/en/Main/arduinoBoardDue>`_
|
||||
- `Arduino Due (Programming Port) <http://www.arduino.org/products/boards/4-arduino-boards/arduino-due>`_
|
||||
- SAM3X8E
|
||||
- 84 MHz
|
||||
- 512 Kb
|
||||
- 32 Kb
|
||||
|
||||
* - ``megaatmega2560``
|
||||
- `Arduino Mega or Mega 2560 ATmega2560 (Mega 2560) <http://arduino.cc/en/Main/arduinoBoardMega2560>`_
|
||||
- `Arduino Mega or Mega 2560 ATmega2560 (Mega 2560) <http://www.arduino.org/products/boards/4-arduino-boards/arduino-mega-2560>`_
|
||||
- ATMEGA2560
|
||||
- 16 MHz
|
||||
- 256 Kb
|
||||
- 8 Kb
|
||||
|
||||
* - ``nanoatmega328``
|
||||
- `Arduino Nano ATmega328 <http://arduino.cc/en/Main/ArduinoBoardNano>`_
|
||||
- `Arduino Nano ATmega328 <http://www.arduino.org/products/boards/4-arduino-boards/arduino-nano>`_
|
||||
- ATMEGA328P
|
||||
- 16 MHz
|
||||
- 32 Kb
|
||||
- 2 Kb
|
||||
|
||||
* - ``uno``
|
||||
- `Arduino Uno <http://arduino.cc/en/Main/ArduinoBoardUno>`_
|
||||
- `Arduino Uno <http://www.arduino.org/products/boards/4-arduino-boards/arduino-uno>`_
|
||||
- ATMEGA328P
|
||||
- 16 MHz
|
||||
- 32 Kb
|
||||
|
@ -15,8 +15,8 @@
|
||||
|
||||
* Cross-platform build system without external dependencies to the OS software:
|
||||
|
||||
- 200+ embedded boards
|
||||
- 15+ development platforms
|
||||
- 250+ embedded boards
|
||||
- 20+ development platforms
|
||||
- 10+ frameworks
|
||||
|
||||
* C/C++ Intelligent code completion
|
||||
|
@ -18,8 +18,8 @@ PlatformIO IDE is the next-generation integrated development environment for IoT
|
||||
|
||||
* Cross-platform build system without external dependencies to the OS software:
|
||||
|
||||
- 200+ embedded boards
|
||||
- 15+ development platforms
|
||||
- 250+ embedded boards
|
||||
- 20+ development platforms
|
||||
- 10+ frameworks
|
||||
|
||||
* C/C++ Intelligent Code Completion
|
||||
|
@ -214,6 +214,13 @@ Arduino
|
||||
- 32 Kb
|
||||
- 2 Kb
|
||||
|
||||
* - ``chiwawa``
|
||||
- `Arduino Industrial 101 <http://www.arduino.org/products/boards/4-arduino-boards/arduino-industrial-101>`_
|
||||
- ATMEGA32U4
|
||||
- 16 MHz
|
||||
- 32 Kb
|
||||
- 2.5 Kb
|
||||
|
||||
* - ``diecimilaatmega168``
|
||||
- `Arduino Duemilanove or Diecimila ATmega168 <http://arduino.cc/en/Main/ArduinoBoardDiecimila>`_
|
||||
- ATMEGA168
|
||||
@ -229,14 +236,14 @@ Arduino
|
||||
- 2 Kb
|
||||
|
||||
* - ``esplora``
|
||||
- `Arduino Esplora <http://arduino.cc/en/Main/ArduinoBoardEsplora>`_
|
||||
- `Arduino Esplora <http://www.arduino.org/products/boards/4-arduino-boards/arduino-esplora>`_
|
||||
- ATMEGA32U4
|
||||
- 16 MHz
|
||||
- 32 Kb
|
||||
- 2.5 Kb
|
||||
|
||||
* - ``ethernet``
|
||||
- `Arduino Ethernet <http://arduino.cc/en/Main/ArduinoBoardEthernet>`_
|
||||
- `Arduino Ethernet <http://www.arduino.org/products/boards/4-arduino-boards/arduino-ethernet>`_
|
||||
- ATMEGA328P
|
||||
- 16 MHz
|
||||
- 32 Kb
|
||||
@ -250,7 +257,14 @@ Arduino
|
||||
- 2 Kb
|
||||
|
||||
* - ``leonardo``
|
||||
- `Arduino Leonardo <http://arduino.cc/en/Main/arduinoBoardLeonardo>`_
|
||||
- `Arduino Leonardo <http://www.arduino.org/products/boards/4-arduino-boards/arduino-leonardo>`_
|
||||
- ATMEGA32U4
|
||||
- 16 MHz
|
||||
- 32 Kb
|
||||
- 2.5 Kb
|
||||
|
||||
* - ``leonardoeth``
|
||||
- `Arduino Leonardo ETH <http://www.arduino.org/products/boards/4-arduino-boards/arduino-leonardo-eth>`_
|
||||
- ATMEGA32U4
|
||||
- 16 MHz
|
||||
- 32 Kb
|
||||
@ -271,28 +285,28 @@ Arduino
|
||||
- 2 Kb
|
||||
|
||||
* - ``megaADK``
|
||||
- `Arduino Mega ADK <http://arduino.cc/en/Main/ArduinoBoardMegaADK>`_
|
||||
- `Arduino Mega ADK <http://www.arduino.org/products/boards/4-arduino-boards/arduino-mega-adk>`_
|
||||
- ATMEGA2560
|
||||
- 16 MHz
|
||||
- 256 Kb
|
||||
- 8 Kb
|
||||
|
||||
* - ``megaatmega1280``
|
||||
- `Arduino Mega or Mega 2560 ATmega1280 <http://arduino.cc/en/Main/arduinoBoardMega>`_
|
||||
- `Arduino Mega or Mega 2560 ATmega1280 <http://www.arduino.org/products/boards/4-arduino-boards/arduino-mega-2560>`_
|
||||
- ATMEGA1280
|
||||
- 16 MHz
|
||||
- 128 Kb
|
||||
- 8 Kb
|
||||
|
||||
* - ``megaatmega2560``
|
||||
- `Arduino Mega or Mega 2560 ATmega2560 (Mega 2560) <http://arduino.cc/en/Main/arduinoBoardMega2560>`_
|
||||
- `Arduino Mega or Mega 2560 ATmega2560 (Mega 2560) <http://www.arduino.org/products/boards/4-arduino-boards/arduino-mega-2560>`_
|
||||
- ATMEGA2560
|
||||
- 16 MHz
|
||||
- 256 Kb
|
||||
- 8 Kb
|
||||
|
||||
* - ``micro``
|
||||
- `Arduino Micro <http://arduino.cc/en/Main/ArduinoBoardMicro>`_
|
||||
- `Arduino Micro <http://www.arduino.org/products/boards/4-arduino-boards/arduino-micro>`_
|
||||
- ATMEGA32U4
|
||||
- 16 MHz
|
||||
- 32 Kb
|
||||
@ -313,14 +327,14 @@ Arduino
|
||||
- 2 Kb
|
||||
|
||||
* - ``nanoatmega168``
|
||||
- `Arduino Nano ATmega168 <http://arduino.cc/en/Main/ArduinoBoardNano>`_
|
||||
- `Arduino Nano ATmega168 <http://www.arduino.org/products/boards/4-arduino-boards/arduino-nano>`_
|
||||
- ATMEGA168
|
||||
- 16 MHz
|
||||
- 16 Kb
|
||||
- 1 Kb
|
||||
|
||||
* - ``nanoatmega328``
|
||||
- `Arduino Nano ATmega328 <http://arduino.cc/en/Main/ArduinoBoardNano>`_
|
||||
- `Arduino Nano ATmega328 <http://www.arduino.org/products/boards/4-arduino-boards/arduino-nano>`_
|
||||
- ATMEGA328P
|
||||
- 16 MHz
|
||||
- 32 Kb
|
||||
@ -355,28 +369,35 @@ Arduino
|
||||
- 2 Kb
|
||||
|
||||
* - ``robotControl``
|
||||
- `Arduino Robot Control <http://arduino.cc/en/Main/Robot>`_
|
||||
- `Arduino Robot Control <http://www.arduino.org/products/boards/4-arduino-boards/arduino-robot>`_
|
||||
- ATMEGA32U4
|
||||
- 16 MHz
|
||||
- 32 Kb
|
||||
- 2.5 Kb
|
||||
|
||||
* - ``robotMotor``
|
||||
- `Arduino Robot Motor <http://arduino.cc/en/Main/Robot>`_
|
||||
- `Arduino Robot Motor <http://www.arduino.org/products/boards/4-arduino-boards/arduino-robot>`_
|
||||
- ATMEGA32U4
|
||||
- 16 MHz
|
||||
- 32 Kb
|
||||
- 2.5 Kb
|
||||
|
||||
* - ``uno``
|
||||
- `Arduino Uno <http://arduino.cc/en/Main/ArduinoBoardUno>`_
|
||||
- `Arduino Uno <http://www.arduino.org/products/boards/4-arduino-boards/arduino-uno>`_
|
||||
- ATMEGA328P
|
||||
- 16 MHz
|
||||
- 32 Kb
|
||||
- 2 Kb
|
||||
|
||||
* - ``yun``
|
||||
- `Arduino Yun <http://arduino.cc/en/Main/ArduinoBoardYun>`_
|
||||
- `Arduino Yun <http://www.arduino.org/products/boards/4-arduino-boards/arduino-yun>`_
|
||||
- ATMEGA32U4
|
||||
- 16 MHz
|
||||
- 32 Kb
|
||||
- 2.5 Kb
|
||||
|
||||
* - ``yunmini``
|
||||
- `Arduino Yun Mini <http://www.arduino.org/products/boards/4-arduino-boards/arduino-yun-mini>`_
|
||||
- ATMEGA32U4
|
||||
- 16 MHz
|
||||
- 32 Kb
|
||||
@ -579,6 +600,26 @@ LightUp
|
||||
- 32 Kb
|
||||
- 2.5 Kb
|
||||
|
||||
Linino
|
||||
~~~~~~
|
||||
|
||||
.. list-table::
|
||||
:header-rows: 1
|
||||
|
||||
* - Type ``board``
|
||||
- Name
|
||||
- Microcontroller
|
||||
- Frequency
|
||||
- Flash
|
||||
- RAM
|
||||
|
||||
* - ``one``
|
||||
- `Linino One <http://www.linino.org/portfolio/linino-one/>`_
|
||||
- ATMEGA32U4
|
||||
- 16 MHz
|
||||
- 32 Kb
|
||||
- 2.5 Kb
|
||||
|
||||
LowPowerLab
|
||||
~~~~~~~~~~~
|
||||
|
||||
|
@ -99,14 +99,14 @@ Arduino
|
||||
- RAM
|
||||
|
||||
* - ``due``
|
||||
- `Arduino Due (Programming Port) <http://arduino.cc/en/Main/arduinoBoardDue>`_
|
||||
- `Arduino Due (Programming Port) <http://www.arduino.org/products/boards/4-arduino-boards/arduino-due>`_
|
||||
- SAM3X8E
|
||||
- 84 MHz
|
||||
- 512 Kb
|
||||
- 32 Kb
|
||||
|
||||
* - ``dueUSB``
|
||||
- `Arduino Due (USB Native Port) <http://arduino.cc/en/Main/arduinoBoardDue>`_
|
||||
- `Arduino Due (USB Native Port) <http://www.arduino.org/products/boards/4-arduino-boards/arduino-due>`_
|
||||
- SAM3X8E
|
||||
- 84 MHz
|
||||
- 512 Kb
|
||||
|
@ -14,7 +14,7 @@
|
||||
|
||||
import sys
|
||||
|
||||
VERSION = (2, 9, 0)
|
||||
VERSION = (2, 9, 1)
|
||||
__version__ = ".".join([str(s) for s in VERSION])
|
||||
|
||||
__title__ = "platformio"
|
||||
|
@ -34,8 +34,8 @@ class InoToCPPConverter(object):
|
||||
""",
|
||||
re.X | re.M | re.I
|
||||
)
|
||||
|
||||
DETECTMAIN_RE = re.compile(r"void\s+(setup|loop)\s*\(", re.M | re.I)
|
||||
PROTOPTRS_TPLRE = r"\([^&\(]*&(%s)[^\)]*\)"
|
||||
|
||||
def __init__(self, nodes):
|
||||
self.nodes = nodes
|
||||
@ -50,22 +50,37 @@ class InoToCPPConverter(object):
|
||||
if (set([match.group(2).strip(), match.group(3).strip()]) &
|
||||
reserved_keywords):
|
||||
continue
|
||||
prototypes.append((file_path, match.start(), match.group(1)))
|
||||
prototypes.append({"path": file_path, "match": match})
|
||||
return prototypes
|
||||
|
||||
@staticmethod
|
||||
def append_prototypes(contents, prototypes):
|
||||
def append_prototypes(self, file_path, contents, prototypes):
|
||||
result = []
|
||||
if not prototypes:
|
||||
return result
|
||||
|
||||
first_pos = prototypes[0][1]
|
||||
result.append(contents[:first_pos].strip())
|
||||
result.append("%s;" % ";\n".join([p[2] for p in prototypes]))
|
||||
prototype_names = set(
|
||||
[p['match'].group(3).strip() for p in prototypes])
|
||||
split_pos = prototypes[0]['match'].start()
|
||||
for item in prototypes:
|
||||
if item['path'] == file_path:
|
||||
split_pos = item['match'].start()
|
||||
break
|
||||
|
||||
match_ptrs = re.search(
|
||||
self.PROTOPTRS_TPLRE % ("|".join(prototype_names)),
|
||||
contents[:split_pos],
|
||||
re.M
|
||||
)
|
||||
if match_ptrs:
|
||||
split_pos = contents.rfind("\n", 0, match_ptrs.start())
|
||||
|
||||
result.append(contents[:split_pos].strip())
|
||||
result.append("%s;" %
|
||||
";\n".join([p['match'].group(1) for p in prototypes]))
|
||||
result.append('#line %d "%s"' % (
|
||||
contents.count("\n", 0, first_pos + len(prototypes[0][2])) + 1,
|
||||
prototypes[0][0].replace("\\", "/")))
|
||||
result.append(contents[first_pos:].strip())
|
||||
contents.count("\n", 0, split_pos) + 2,
|
||||
file_path.replace("\\", "/")))
|
||||
result.append(contents[split_pos:].strip())
|
||||
|
||||
return result
|
||||
|
||||
@ -91,7 +106,8 @@ class InoToCPPConverter(object):
|
||||
result.append('#line 1 "%s"' % file_path.replace("\\", "/"))
|
||||
|
||||
if is_first and prototypes:
|
||||
result += self.append_prototypes(contents, prototypes)
|
||||
result += self.append_prototypes(
|
||||
file_path, contents, prototypes)
|
||||
else:
|
||||
result.append(contents)
|
||||
is_first = False
|
||||
|
@ -36,5 +36,8 @@ class Lattice_ice40Platform(BasePlatform):
|
||||
}
|
||||
}
|
||||
|
||||
def get_name(self):
|
||||
return "Lattice iCE40"
|
||||
|
||||
def is_embedded(self):
|
||||
return True
|
||||
|
Reference in New Issue
Block a user