Commit 7bd0a4c4 authored by Mudassar Khan's avatar Mudassar Khan
Browse files

update mn-cse and in-cse dockerfile and add fcp files for flex containers

parent 6390b2a4
Loading
Loading
Loading
Loading
+82 −36
Changes for go-apps/meep-iot-pltf/meep-acme-in-cse/Dockerfile: 82 added lines, 36 removed lines.
Original line number Diff line number Diff line
FROM python:3.11-slim
FROM ubuntu:24.04 AS builder

RUN DEBIAN_FRONTEND=noninteractive apt-get update \
  && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
ENV DEBIAN_FRONTEND=noninteractive

RUN apt-get update && apt-get install -y --no-install-recommends \
      build-essential \
      ca-certificates \
      git \
      libffi-dev \
      libssl-dev \
      pkg-config \
      python3 \
      python3-dev \
      python3-pip \
      python3-venv \
    && rm -rf /var/lib/apt/lists/*

WORKDIR /usr/src/app

# --depth 1: skip full git history, much faster/smaller clone
RUN git clone --depth 1 https://github.com/ankraft/ACME-oneM2M-CSE.git ACME-oneM2M-CSE \
    && rm -rf ACME-oneM2M-CSE/.git

WORKDIR /usr/src/app/ACME-oneM2M-CSE

# Isolated venv sidesteps Ubuntu 24.04's PEP 668 "externally-managed-environment" pip error
RUN python3 -m venv /opt/venv
ENV PATH="/opt/venv/bin:$PATH"

# Copy requirements first so this layer only rebuilds when deps actually change
COPY ./data/requirements.txt ./requirements.txt
RUN pip install --no-cache-dir --upgrade pip \
    && pip install --no-cache-dir -r requirements.txt

COPY ./data ./

RUN cp -r ./acme/* ./acmecse/ \
    && rm -rf ./acme \
    && chmod +x entrypoint.sh

# RUN chmod +x entrypoint.sh

# ---------- Runtime stage ----------
FROM ubuntu:24.04

ENV DEBIAN_FRONTEND=noninteractive

# Only what's needed to *run* the CSE, not build it
RUN apt-get update && apt-get install -y --no-install-recommends \
      ca-certificates \
      curl \
      gettext \
      git \
@@ -9,49 +55,49 @@ RUN DEBIAN_FRONTEND=noninteractive apt-get update \
      iputils-ping \
      jq \
      libedit2 \
  libffi-dev \
  libglib2.0-dev \
  libssl-dev \
      libglib2.0-0 \
      lsof \
  pkg-config \
      python3 \
      sudo \
      tzdata \
  && DEBIAN_FRONTEND=noninteractive apt-get autoremove --purge -y \
  && DEBIAN_FRONTEND=noninteractive apt-get autoclean \
  && DEBIAN_FRONTEND=noninteractive apt-get clean \
    && apt-get autoremove --purge -y \
    && apt-get autoclean \
    && apt-get clean \
    && rm -rf /var/lib/apt/lists/*

WORKDIR /usr/src/app

RUN git clone -b development https://github.com/ankraft/ACME-oneM2M-CSE.git ACME-oneM2M-CSE
RUN echo "meep-acme-mn-cse" > /etc/hostname

WORKDIR /usr/src/app/ACME-oneM2M-CSE

ENV MQTT_ENABLE=""
ENV MQTT_HOST=""
ENV MQTT_PORT=""
ENV MQTT_USERNAME=""
ENV MQTT_PASSWORD=""
ENV SERVER_PORT=""
ENV SERVER_TYPE=""
ENV SERVER_IP=""
ENV ENABLE_COAP=""
ENV ENABLE_WS=""
ENV CSE_BASE_NAME=""
ENV CSE_BASE_RI=""
ENV MEEP_MEP_NAME=""
ENV MEC_SANDBOX_SERVER=""

RUN echo "meep-acme-in-cse" > /etc/hostname

COPY ./data/requirements.txt /usr/src/app/ACME-oneM2M-CSE/requirements.txt
RUN pip3 install --no-cache-dir python-dotenv --break-system-packages
RUN pip3 install --no-cache-dir -r requirements.txt --break-system-packages
# Pull in the pre-built venv and the app code from the builder stage
COPY --from=builder /opt/venv /opt/venv
COPY --from=builder /usr/src/app/ACME-oneM2M-CSE ./

COPY ./data /usr/src/app/ACME-oneM2M-CSE
RUN ln -sf /opt/venv/bin/python3 /usr/local/bin/python3 \
    && ln -sf /opt/venv/bin/pip /usr/local/bin/pip

RUN cp -r ./acme/* ./acmecse/ && rm -rf ./acme || true
ENV PATH="/opt/venv/bin:$PATH"

RUN chmod +x entrypoint.sh
ENV SERVER_TYPE="" \
    SERVER_IP="" \
    SERVER_PORT="" \
    CSE_BASE_NAME="" \
    CSE_BASE_RI="" \
    REMOTE_CSE_ID="" \
    REMOTE_CSE_NAME="" \
    REMOTE_CSE_HOST="" \
    REMOTE_CSE_PORT="" \
    MQTT_ENABLE="" \
    MQTT_HOST="" \
    MQTT_PORT="" \
    MQTT_USERNAME="" \
    MQTT_PASSWORD="" \
    MEC_ENABLE="" \
    MEC_HOST_URL="" \
    MEC_PLATFORM="" \
    MEC_SANDBOX_ID="" \
    ENABLE_COAP="" \
    ENABLE_WS="" \
    ACME_IN_SERVICE_NAME=""

ENTRYPOINT ["./entrypoint.sh"]
 No newline at end of file
+43 −0
Changes for go-apps/meep-iot-pltf/meep-acme-in-cse/acmecse/init/mec-dev.fcp: 43 added lines, 0 removed lines.
Original line number Diff line number Diff line
// Created by SDTTool
// oneM2M Release: 4.12.0
// Domain:         org.onem2m.common
[

    // MecDeviceClass: iotDevice
    {
        "type"      : "mec:iotDev",
        "lname"     : "iotDevice",
        "sdttype"   : "mecdevice",
        "cnd"       : "org.onem2m.common.mec.device.iotDevice",
        "attributes": [
            // Property: deviceId
            { "sname" : "devId", "lname" : "deviceId", "type" : "string", "car" : "01", "oc" : "O" },  //0 Optional, 1..N, cardinality, oc: OnCreate Mandatory, Update, Optional, Np: Not provisioned
            // Property: gspi
            { "sname" : "gspi", "lname" : "gspi", "type" : "string", "car" : "01", "oc" : "O" },
            // Property: pei
            { "sname" : "mpei", "lname" : "mec-pei", "type" : "string", "car" : "01", "oc" : "O" },
            // Property: supi
            { "sname" : "supi", "lname" : "supi", "type" : "string", "car" : "01", "oc" : "O" },
            // Property: msisdn
            { "sname" : "msisdn", "lname" : "msisdn", "type" : "string", "car" : "01", "oc" : "O" },
            // Property: imei
            { "sname" : "imei", "lname" : "imei", "type" : "string", "car" : "01", "oc" : "O" },
            // Property: imsi
            { "sname" : "imsi", "lname" : "imsi", "type" : "string", "car" : "01", "oc" : "O" },
            // Property: iccid
            { "sname" : "iccid", "lname" : "iccid", "type" : "string", "car" : "01", "oc" : "O" },
            // Property: requestedIotPlatformId
            { "sname" : "rIPId", "lname" : "requestedIotPlatformId", "type" : "string", "car" : "01" },
            // Property: requestedUserTransportId
            { "sname" : "rUTId", "lname" : "requestedUserTransportId", "type" : "string", "car" : "01", "oc" : "O" },
            // Property: requestedMecTrafficRule
            { "sname" : "rMTRe", "lname" : "requestedMecTrafficRule",  "type" : "list", "car" : "01", "oc" : "O" },
            // Property: enabled
            { "sname" : "enabd",  "lname" : "enabled",     "type" : "boolean",   "car" : "1",  "oc" : "M" }
        ],
        "children"  : [
            // Module class
        ]
    }

]
+328 −0
Changes for go-apps/meep-iot-pltf/meep-acme-in-cse/acmecse/init/mec-mc.fcp: 328 added lines, 0 removed lines.
Original line number Diff line number Diff line

// Created by SDTTool
// oneM2M Release: 5.6.0
// Domain:         org.etsi.mec
[

    // ModuleClass: ServiceInfo (SerIo)
    {
        "type"      : "mec:SerIo",
        "lname"     : "ServiceInfo",
        "cnd"       : "org.etsi.mec.moduleclass.ServiceInfo",
        "sdttype"   : "moduleclass",
        "attributes": [
            // DataPoint: dataGenerationTime
            { "sname" : "dgt", "lname" : "dataGenerationTime", "type" : "timestamp", "car" : "01" }, 
            // DataPoint: serInstanceId
            { "sname" : "seIId", "lname" : "serInstanceId", "type" : "string", "car" : "01" }, 
            // DataPoint: serName
            { "sname" : "serNe", "lname" : "serName", "type" : "string", "car" : "1" }, 
            // DataPoint: serVersion
            { "sname" : "serVn", "lname" : "serVersion", "type" : "string", "car" : "1" }, 
            // DataPoint: serState
            { "sname" : "serSe", "lname" : "serState", "type" : "nonNegInteger", "car" : "1" }, 
            // DataPoint: serSerializer
            { "sname" : "serSr", "lname" : "serSerializer", "type" : "nonNegInteger", "car" : "1" }, 
            // DataPoint: scopeOfLocality
            { "sname" : "scOLy", "lname" : "scopeOfLocality", "type" : "nonNegInteger", "car" : "01" }, 
            // DataPoint: consumedLocalOnly
            { "sname" : "coLOy", "lname" : "consumedLocalOnly", "type" : "boolean", "car" : "01" }, 
            // DataPoint: isLocal
            { "sname" : "isoLl", "lname" : "isLocal", "type" : "boolean", "car" : "01" }, 
            // DataPoint: livenessInterval
            { "sname" : "livIl", "lname" : "livenessInterval", "type" : "integer", "car" : "01" }, 
            // DataPoint: transportId
            { "sname" : "traId", "lname" : "transportId", "type" : "string", "car" : "01" }
        ],
		"children"  : [
            "mec:SerIoInst"
        ]
    },

    // ModuleClass Announced: ServiceInfoAnnc (SerIoAnnc)
    {
        "type"      : "mec:SerIoAnnc",
        "lname"     : "ServiceInfoAnnc",
        "cnd"       : "org.etsi.mec.moduleclass.ServiceInfoAnnc",
        "sdttype"   : "moduleclass",
        "attributes": [
            // DataPoint: dataGenerationTime
            { "sname" : "dgt", "lname" : "dataGenerationTime", "type" : "timestamp", "car" : "01" }, 
            // DataPoint: serInstanceId
            { "sname" : "seIId", "lname" : "serInstanceId", "type" : "string", "car" : "01" }, 
            // DataPoint: serName
            { "sname" : "serNe", "lname" : "serName", "type" : "string", "car" : "1" }, 
            // DataPoint: serVersion
            { "sname" : "serVn", "lname" : "serVersion", "type" : "string", "car" : "1" }, 
            // DataPoint: serState
            { "sname" : "serSe", "lname" : "serState", "type" : "nonNegInteger", "car" : "1" }, 
            // DataPoint: serSerializer
            { "sname" : "serSr", "lname" : "serSerializer", "type" : "nonNegInteger", "car" : "1" }, 
            // DataPoint: scopeOfLocality
            { "sname" : "scOLy", "lname" : "scopeOfLocality", "type" : "nonNegInteger", "car" : "01" }, 
            // DataPoint: consumedLocalOnly
            { "sname" : "coLOy", "lname" : "consumedLocalOnly", "type" : "boolean", "car" : "01" }, 
            // DataPoint: isLocal
            { "sname" : "isoLl", "lname" : "isLocal", "type" : "boolean", "car" : "01" }, 
            // DataPoint: livenessInterval
            { "sname" : "livIl", "lname" : "livenessInterval", "type" : "integer", "car" : "01" }, 
            // DataPoint: transportId
            { "sname" : "traId", "lname" : "transportId", "type" : "string", "car" : "01" }
        ]
    }, 

    // ModuleClass Instance: ServiceInfoInst (SerIoInst)
    {
        "type"      : "mec:SerIoInst",
        "lname"     : "ServiceInfoInst",
        "cnd"       : "org.etsi.mec.moduleclass.ServiceInfoInst",
        "sdttype"   : "moduleclass",
        "attributes": [
            // DataPoint: dataGenerationTime
            { "sname" : "dgt", "lname" : "dataGenerationTime", "type" : "timestamp", "car" : "01" }, 
            // DataPoint: serInstanceId
            { "sname" : "seIId", "lname" : "serInstanceId", "type" : "string", "car" : "01" }, 
            // DataPoint: serName
            { "sname" : "serNe", "lname" : "serName", "type" : "string", "car" : "1" }, 
            // DataPoint: serVersion
            { "sname" : "serVn", "lname" : "serVersion", "type" : "string", "car" : "1" }, 
            // DataPoint: serState
            { "sname" : "serSe", "lname" : "serState", "type" : "nonNegInteger", "car" : "1" }, 
            // DataPoint: serSerializer
            { "sname" : "serSr", "lname" : "serSerializer", "type" : "nonNegInteger", "car" : "1" }, 
            // DataPoint: scopeOfLocality
            { "sname" : "scOLy", "lname" : "scopeOfLocality", "type" : "nonNegInteger", "car" : "01" }, 
            // DataPoint: consumedLocalOnly
            { "sname" : "coLOy", "lname" : "consumedLocalOnly", "type" : "boolean", "car" : "01" }, 
            // DataPoint: isLocal
            { "sname" : "isoLl", "lname" : "isLocal", "type" : "boolean", "car" : "01" }, 
            // DataPoint: livenessInterval
            { "sname" : "livIl", "lname" : "livenessInterval", "type" : "integer", "car" : "01" }, 
            // DataPoint: transportId
            { "sname" : "traId", "lname" : "transportId", "type" : "string", "car" : "01" }
        ]
    }, 


    // ModuleClass: category (catey)
    {
        "type"      : "mec:catey",
        "lname"     : "category",
        "cnd"       : "org.etsi.mec.moduleclass.category",
        "sdttype"   : "moduleclass",
        "attributes": [
            // DataPoint: dataGenerationTime
            { "sname" : "dgt", "lname" : "dataGenerationTime", "type" : "timestamp", "car" : "01" }, 
            // DataPoint: href
            { "sname" : "href", "lname" : "href", "type" : "anyURI", "car" : "1" }, 
            // DataPoint: id
            { "sname" : "id", "lname" : "id", "type" : "string", "car" : "1" }, 
            // DataPoint: name
            { "sname" : "name", "lname" : "name", "type" : "string", "car" : "1" }, 
            // DataPoint: version
            { "sname" : "versn", "lname" : "version", "type" : "string", "car" : "1" }
        ],
		"children"  : [
            "mec:cateyInst"
        ]
    },

    // ModuleClass Announced: categoryAnnc (cateyAnnc)
    {
        "type"      : "mec:cateyAnnc",
        "lname"     : "categoryAnnc",
        "cnd"       : "org.etsi.mec.moduleclass.categoryAnnc",
        "sdttype"   : "moduleclass",
        "attributes": [
            // DataPoint: dataGenerationTime
            { "sname" : "dgt", "lname" : "dataGenerationTime", "type" : "timestamp", "car" : "01" }, 
            // DataPoint: href
            { "sname" : "href", "lname" : "href", "type" : "anyURI", "car" : "1" }, 
            // DataPoint: id
            { "sname" : "id", "lname" : "id", "type" : "string", "car" : "1" }, 
            // DataPoint: name
            { "sname" : "name", "lname" : "name", "type" : "string", "car" : "1" }, 
            // DataPoint: version
            { "sname" : "versn", "lname" : "version", "type" : "string", "car" : "1" }
        ]
    }, 

    // ModuleClass Instance: categoryInst (cateyInst)
    {
        "type"      : "mec:cateyInst",
        "lname"     : "categoryInst",
        "cnd"       : "org.etsi.mec.moduleclass.categoryInst",
        "sdttype"   : "moduleclass",
        "attributes": [
            // DataPoint: dataGenerationTime
            { "sname" : "dgt", "lname" : "dataGenerationTime", "type" : "timestamp", "car" : "01" }, 
            // DataPoint: href
            { "sname" : "href", "lname" : "href", "type" : "anyURI", "car" : "1" }, 
            // DataPoint: id
            { "sname" : "id", "lname" : "id", "type" : "string", "car" : "1" }, 
            // DataPoint: name
            { "sname" : "name", "lname" : "name", "type" : "string", "car" : "1" }, 
            // DataPoint: version
            { "sname" : "versn", "lname" : "version", "type" : "string", "car" : "1" }
        ]
    }, 


    // ModuleClass: transport (trant)
    {
        "type"      : "mec:trant",
        "lname"     : "transport",
        "cnd"       : "org.etsi.mec.moduleclass.transport",
        "sdttype"   : "moduleclass",
        "attributes": [
            // DataPoint: dataGenerationTime
            { "sname" : "dgt", "lname" : "dataGenerationTime", "type" : "timestamp", "car" : "01" }, 
            // DataPoint: id
            { "sname" : "id", "lname" : "id", "type" : "string", "car" : "1" }, 
            // DataPoint: name
            { "sname" : "name", "lname" : "name", "type" : "string", "car" : "1" }, 
            // DataPoint: description
            { "sname" : "dc", "lname" : "description", "type" : "string", "car" : "01" }, 
            // DataPoint: type
            { "sname" : "type", "lname" : "type", "type" : "nonNegInteger", "car" : "1" }, 
            // DataPoint: protocol
            { "sname" : "protl", "lname" : "protocol", "type" : "string", "car" : "1" }, 
            // DataPoint: version
            { "sname" : "versn", "lname" : "version", "type" : "string", "car" : "1" }, 
            // DataPoint: implSpecificInfo
            { "sname" : "imSIo", "lname" : "implSpecificInfo", "type" : "string", "car" : "01" }
        ],
		"children"  : [
            "mec:trantInst"
        ]
    },

    // ModuleClass Announced: transportAnnc (trantAnnc)
    {
        "type"      : "mec:trantAnnc",
        "lname"     : "transportAnnc",
        "cnd"       : "org.etsi.mec.moduleclass.transportAnnc",
        "sdttype"   : "moduleclass",
        "attributes": [
            // DataPoint: dataGenerationTime
            { "sname" : "dgt", "lname" : "dataGenerationTime", "type" : "timestamp", "car" : "01" }, 
            // DataPoint: id
            { "sname" : "id", "lname" : "id", "type" : "string", "car" : "1" }, 
            // DataPoint: name
            { "sname" : "name", "lname" : "name", "type" : "string", "car" : "1" }, 
            // DataPoint: description
            { "sname" : "dc", "lname" : "description", "type" : "string", "car" : "01" }, 
            // DataPoint: type
            { "sname" : "type", "lname" : "type", "type" : "nonNegInteger", "car" : "1" }, 
            // DataPoint: protocol
            { "sname" : "protl", "lname" : "protocol", "type" : "string", "car" : "1" }, 
            // DataPoint: version
            { "sname" : "versn", "lname" : "version", "type" : "string", "car" : "1" }, 
            // DataPoint: implSpecificInfo
            { "sname" : "imSIo", "lname" : "implSpecificInfo", "type" : "string", "car" : "01" }
        ]
    }, 

    // ModuleClass Instance: transportInst (trantInst)
    {
        "type"      : "mec:trantInst",
        "lname"     : "transportInst",
        "cnd"       : "org.etsi.mec.moduleclass.transportInst",
        "sdttype"   : "moduleclass",
        "attributes": [
            // DataPoint: dataGenerationTime
            { "sname" : "dgt", "lname" : "dataGenerationTime", "type" : "timestamp", "car" : "01" }, 
            // DataPoint: id
            { "sname" : "id", "lname" : "id", "type" : "string", "car" : "1" }, 
            // DataPoint: name
            { "sname" : "name", "lname" : "name", "type" : "string", "car" : "1" }, 
            // DataPoint: description
            { "sname" : "dc", "lname" : "description", "type" : "string", "car" : "01" }, 
            // DataPoint: type
            { "sname" : "type", "lname" : "type", "type" : "nonNegInteger", "car" : "1" }, 
            // DataPoint: protocol
            { "sname" : "protl", "lname" : "protocol", "type" : "string", "car" : "1" }, 
            // DataPoint: version
            { "sname" : "versn", "lname" : "version", "type" : "string", "car" : "1" }, 
            // DataPoint: implSpecificInfo
            { "sname" : "imSIo", "lname" : "implSpecificInfo", "type" : "string", "car" : "01" }
        ]
    }, 


    // ModuleClass: endpoint (endpt)
    {
        "type"      : "mec:endpt",
        "lname"     : "endpoint",
        "cnd"       : "org.etsi.mec.moduleclass.endpoint",
        "sdttype"   : "moduleclass",
        "attributes": [
            // DataPoint: dataGenerationTime
            { "sname" : "dgt", "lname" : "dataGenerationTime", "type" : "timestamp", "car" : "01" }, 
            // DataPoint: uris
            { "sname" : "uris", "lname" : "uris", "type" : "list", "car" : "01" }, 
            // DataPoint: addresses
            { "sname" : "addr0", "lname" : "addresses", "type" : "list", "car" : "01" }, 
            // DataPoint: alternative
            { "sname" : "altee", "lname" : "alternative", "type" : "string", "car" : "01" }
        ],
		"children"  : [
            "mec:endptInst"
        ]
    },

    // ModuleClass Announced: endpointAnnc (endptAnnc)
    {
        "type"      : "mec:endptAnnc",
        "lname"     : "endpointAnnc",
        "cnd"       : "org.etsi.mec.moduleclass.endpointAnnc",
        "sdttype"   : "moduleclass",
        "attributes": [
            // DataPoint: dataGenerationTime
            { "sname" : "dgt", "lname" : "dataGenerationTime", "type" : "timestamp", "car" : "01" }, 
            // DataPoint: uris
            { "sname" : "uris", "lname" : "uris", "type" : "list", "car" : "01" }, 
            // DataPoint: addresses
            { "sname" : "addr0", "lname" : "addresses", "type" : "list", "car" : "01" }, 
            // DataPoint: alternative
            { "sname" : "altee", "lname" : "alternative", "type" : "string", "car" : "01" }
        ]
    }, 

    // ModuleClass Instance: endpointInst (endptInst)
    {
        "type"      : "mec:endptInst",
        "lname"     : "endpointInst",
        "cnd"       : "org.etsi.mec.moduleclass.endpointInst",
        "sdttype"   : "moduleclass",
        "attributes": [
            // DataPoint: dataGenerationTime
            { "sname" : "dgt", "lname" : "dataGenerationTime", "type" : "timestamp", "car" : "01" }, 
            // DataPoint: uris
            { "sname" : "uris", "lname" : "uris", "type" : "list", "car" : "01" }, 
            // DataPoint: addresses
            { "sname" : "addr0", "lname" : "addresses", "type" : "list", "car" : "01" }, 
            // DataPoint: alternative
            { "sname" : "altee", "lname" : "alternative", "type" : "string", "car" : "01" }
        ]
    },

    // ModuleClass: MecServices (grouping container)
    {
        "type"      : "mec:MecServices",
        "lname"     : "MecServicesGroup",
        "cnd"       : "org.etsi.mec.moduleclass.MecServicesGroup",
        "sdttype"   : "moduleclass",
        "attributes": [],
        "children"  : [
            "mec:SerIo",
            "mec:SerIoAnnc",
            "mec:catey",
            "mec:cateyAnnc",
            "mec:trant",
            "mec:trantAnnc",
            "mec:endpt",
            "mec:endptAnnc"
        ]
    }
]
 No newline at end of file
+33 −30
Changes for go-apps/meep-iot-pltf/meep-acme-in-cse/requirements.txt: 33 added lines, 30 removed lines.
Original line number Diff line number Diff line
#
# This file is autogenerated by pip-compile with Python 3.11
# This file is autogenerated by pip-compile with Python 3.13
# by the following command:
#
#    pip-compile
@@ -7,9 +7,9 @@
blinker==1.9.0
    # via flask
cachetools==6.1.0
    # via acmecse-dev (setup.py)
cbor2==5.6.5
    # via acmecse-dev (setup.py)
    # via acmecse (setup.py)
cbor2==5.9.0
    # via acmecse (setup.py)
certifi==2025.8.3
    # via requests
charset-normalizer==3.4.3
@@ -17,25 +17,25 @@ charset-normalizer==3.4.3
click==8.2.1
    # via flask
coapthon3-acme-cse==1.1.4
    # via acmecse-dev (setup.py)
flask==3.1.1
    # via acmecse (setup.py)
flask==3.1.3
    # via
    #   acmecse-dev (setup.py)
    #   acmecse (setup.py)
    #   flask-cors
flask-cors==6.0.1
    # via acmecse-dev (setup.py)
idna==3.10
    # via acmecse (setup.py)
idna==3.15
    # via requests
inquirerpy==0.3.4
    # via acmecse-dev (setup.py)
    # via acmecse (setup.py)
isodate==0.7.2
    # via acmecse-dev (setup.py)
    # via acmecse (setup.py)
itsdangerous==2.2.0
    # via flask
jinja2==3.1.6
    # via flask
kazoo==2.10.0
    # via acmecse-dev (setup.py)
    # via acmecse (setup.py)
linkify-it-py==2.0.3
    # via markdown-it-py
markdown-it-py[linkify,plugins]==4.0.0
@@ -52,60 +52,63 @@ mdit-py-plugins==0.5.0
    # via markdown-it-py
mdurl==0.1.2
    # via markdown-it-py

numpy==2.3.2
    # via shapely
paho-mqtt==2.1.0
    # via acmecse-dev (setup.py)
    # via acmecse (setup.py)
pfzy==0.3.4
    # via inquirerpy
platformdirs==4.3.8
    # via textual
plotext==5.3.2
    # via
    #   acmecse-dev (setup.py)
    #   acmecse (setup.py)
    #   textual-plotext
prompt-toolkit==3.0.51
    # via inquirerpy
psycopg2-binary==2.9.10
    # via acmecse-dev (setup.py)
pygments==2.19.2
    # via acmecse (setup.py)
pygments==2.20.0
    # via
    #   rich
    #   textual
pyparsing==3.2.3
    # via rdflib
pyperclip==1.9.0
    # via acmecse-dev (setup.py)
    # via acmecse (setup.py)
python-dotenv==1.2.2
    # via acmecse (setup.py)
rdflib==7.1.4
    # via acmecse-dev (setup.py)
requests==2.32.4
    # via acmecse-dev (setup.py)
    # via acmecse (setup.py)
requests==2.33.0
    # via acmecse (setup.py)
rich==14.1.0
    # via
    #   acmecse-dev (setup.py)
    #   acmecse (setup.py)
    #   textual
shapely==2.1.1
    # via acmecse-dev (setup.py)
    # via acmecse (setup.py)
textual==5.2.0
    # via
    #   acmecse-dev (setup.py)
    #   acmecse (setup.py)
    #   textual-plotext
textual-plotext==1.0.1
    # via acmecse-dev (setup.py)
    # via acmecse (setup.py)
tinydb==4.8.2
    # via acmecse-dev (setup.py)
    # via acmecse (setup.py)
typing-extensions==4.14.1
    # via textual
uc-micro-py==1.0.3
    # via linkify-it-py
urllib3==2.5.0
urllib3==2.7.0
    # via requests
waitress==3.0.2
    # via acmecse-dev (setup.py)
    # via acmecse (setup.py)
wcwidth==0.2.13
    # via prompt-toolkit
websockets==15.0.1
    # via acmecse-dev (setup.py)
werkzeug==3.1.3
    # via acmecse (setup.py)
werkzeug==3.1.6
    # via
    #   flask
    #   flask-cors
 No newline at end of file
+80 −43

File changed.

Preview size limit exceeded, changes collapsed.

Loading