semvec/pypi-packages huggingface dataset:
scratchpad-py 0.0.7
python logger libary
Requires Python: >=3.7
Keywords: logger

# scratch-pad-py

## Projects that have been ported below.
https://github.com/polonaiz/scratch-pad


mind blowing python toolset. why not pr?


# Spec

Loggers: composite, console, file, fluent, jandi, line, memory, null, scribe, telegram, slack



# Logger interface
```
from .logger_interface import LoggerInterface

class Logger(LoggerInterface):
    logger: LoggerInterface = None

    @classmethod
    def setLogger(cls, logger: LoggerInterface):
        cls.logger = logger

    @classmethod
    def getLogger(cls) -> LoggerInterface:
        return cls.logger

    @classmethod
    def info(cls, message: dict, option: dict = {}):
        cls.logger.info(message, option)

    @classmethod
    def notice(cls, message: dict, option: dict = {}):
        cls.logger.notice(message, option)

    @classmethod
    def warning(cls, message: dict, option: dict = {}):
        cls.logger.warning(message, option)

    @classmethod
    def error(cls, message: dict, option: dict = {}):
        cls.logger.error(message, option)

    @classmethod
    def critical(cls, message: dict, option: dict = {}):
        cls.logger.critical(message, option)
```



# Usage
FileLogger
```
filePath = "/tmp/scratch-pad-python.log"
logger = FileLogger(
    config={
        "filePath": filePath,
        "truncate": True
    }
)
message = {
    "type": "file",
    "message": "hello world"
}
logger.info(message)
```
CompositeLogger
```
consoleLogger = ConsoleLogger(
        config={
        "appendNewLine": 1
    }
)
memoryLogger = MemoryLogger()
memoryLoggerCompositeFilter = CompositeLogger.getSelectorLevel(["info", "error"])

message = {
    "type": "composite",
    "message": "hello world"
}

compositLogger = CompositeLogger(
    config={
        "defaults": {
            "datetime": lambda: datetime.now().strftime("%Y-%m-%d %H:%M:%S"),
            "program": "scratch-pad-python",
        },
        "loggerFilterPairs": [
            {
                "logger": consoleLogger,
                "filter": None
            },
            {
                "logger": memoryLogger,
                "filter": memoryLoggerCompositeFilter
            }
        ],
    }
)

compositLogger.info(message)
```

JandiLogger
```
url = "url"
logger = JandiLogger(
    url=url
)

message = {
    "type": "jandi",
    "message": "hello world"
}

logger.info(message)
```

TelegramLogger
```
token = "telegram"
chat_id = 1234

message = {
    "type": "telegram",
    "message": "hello world",
}

logger = TelegramLogger(
    chat_id=chat_id,
    token=token,
)

logger.info(message)
```

FluentLogger
```
logger = FluentLogger()
message = {
        "type": "fluent",
        "message": "hello world"
    }

logger.info(message)
```

SlackLogger
```
url = "url"
logger = SlackLogger(url=url)
message = {
    "type": "slack",
    "message": "hello world"
}

logger.info(message)
```

#
stuff) 


scribe-docker for ScribeLogger : https://hub.docker.com/r/polonaiz/facebook-scribe


fluent-docker for FluentLogger : https://github.com/chirichidi/fluent-docker/tree/main
ninja-bear-language-typescript 0.1.0
TypeScript language support for ninja-bear
Requires Python: >=3.10
Keywords: ninja-bear, plugin, language, typescript

# ninja-bear-language-typescript
This [ninja-bear](https://pypi.org/project/ninja-bear) plugin adds support for the TypeScript programming language.

```yaml
languages:
  # -------------------------------------------------------------------------
  # Property description for ninja-bear-language-typescript.
  #
  # language        (required): ninja-bear-language-typescript or typescript
  # file_naming     (optional): Specifies the file naming convention (snake |
  #                             screaming_snake | camel | pascal | kebap).
  #                             Defaults to the file-name without the extension.
  # property_naming (optional): Specifies the property naming convention (snake |
  #                             screaming_snake | camel | pascal | kebap).
  # type_naming     (optional): Specifies the naming convention for the generated
  #                             type (snake | screaming_snake | camel | pascal |
  #                             kebap). The default value is language specific.
  # indent          (optional): Specifies the amount of spaces before each
  #                             property. Defaults to 4.
  # transformers    (optional): Specifies a list of transformers (alias) to use.
  # distributors    (optional): Specifies a list of distributors (alias) to use.
  # ignore          (optional): If true, the section gets ignored.
  # -------------------------------------------------------------------------
  - language: ninja-bear-language-typescript
    file_naming: snake
    property_naming: pascal

properties:
  - type: bool
    name: myBoolean
    value: true

  - type: int
    name: myInteger
    value: 142

  - type: float
    name: myFloat
    value: 322f  # Float with float specifier. However, an additional specifier (f) is not required and will be trimmed.

  - type: float
    name: myCombinedFloat
    value: ${myInteger} * ${myFloat}  # Number and boolean combinations get evaluated during the dump process.

  - type: double
    name: myDouble
    value: 233.9

  - type: string
    name: myString
    value: Hello World
    hidden: true  # If a property should act as a helper but should not be written to the generated file, it must be marked as 'hidden'.

  - type: regex
    name: myRegex
    value: Test Reg(E|e)x
    comment: Just another RegEx.  # Variables can be described using the comment property.

  - type: string
    name: mySubstitutedString
    value: Sometimes I just want to scream ${myString}!  # To use the value of another property, simply use its name with ${}. E.g., ${myString}.
```
ninja-bear-language-java 0.1.0
Java language support for ninja-bear
Requires Python: >=3.10
Keywords: ninja-bear, plugin, language, java

# ninja-bear-language-java
This [ninja-bear](https://pypi.org/project/ninja-bear) plugin adds support for the Java programming language.

```yaml
languages:
  # -------------------------------------------------------------------------
  # Property description for ninja-bear-language-java.
  #
  # language        (required): ninja-bear-language-java or java
  # package         (required): Specifies the config's package name.
  # file_naming     (optional): Specifies the file naming convention (snake |
  #                             screaming_snake | camel | pascal | kebap).
  #                             Defaults to the file-name without the extension.
  # property_naming (optional): Specifies the property naming convention (snake |
  #                             screaming_snake | camel | pascal | kebap).
  # type_naming     (optional): Specifies the naming convention for the generated
  #                             type (snake | screaming_snake | camel | pascal |
  #                             kebap). The default value is language specific.
  # indent          (optional): Specifies the amount of spaces before each
  #                             property. Defaults to 4.
  # transformers    (optional): Specifies a list of transformers (alias) to use.
  # distributors    (optional): Specifies a list of distributors (alias) to use.
  # ignore          (optional): If true, the section gets ignored.
  # -------------------------------------------------------------------------
  - language: ninja-bear-language-java
    package: com.example.testpackage
    property_naming: camel

properties:
  - type: bool
    name: myBoolean
    value: true

  - type: int
    name: myInteger
    value: 142

  - type: float
    name: myFloat
    value: 322f  # Float with float specifier. However, an additional specifier (f) is not required and will be trimmed.

  - type: float
    name: myCombinedFloat
    value: ${myInteger} * ${myFloat}  # Number and boolean combinations get evaluated during the dump process.

  - type: double
    name: myDouble
    value: 233.9

  - type: string
    name: myString
    value: Hello World
    hidden: true  # If a property should act as a helper but should not be written to the generated file, it must be marked as 'hidden'.

  - type: regex
    name: myRegex
    value: Test Reg(E|e)x
    comment: Just another RegEx.  # Variables can be described using the comment property.

  - type: string
    name: mySubstitutedString
    value: Sometimes I just want to scream ${myString}!  # To use the value of another property, simply use its name with ${}. E.g., ${myString}.
```