orionis 0.717.0__tar.gz → 0.718.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {orionis-0.717.0/orionis.egg-info → orionis-0.718.0}/PKG-INFO +1 -1
- {orionis-0.717.0 → orionis-0.718.0}/orionis/metadata/framework.py +1 -1
- {orionis-0.717.0 → orionis-0.718.0}/orionis/support/types/stringable.py +30 -369
- {orionis-0.717.0 → orionis-0.718.0/orionis.egg-info}/PKG-INFO +1 -1
- {orionis-0.717.0 → orionis-0.718.0}/LICENCE +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/MANIFEST.in +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/README.md +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/__init__.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/app.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/console/__init__.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/console/args/__init__.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/console/args/argument.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/console/base/__init__.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/console/base/command.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/console/base/scheduler.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/console/base/scheduler_event_listener.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/console/commands/__init__.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/console/commands/__publisher__.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/console/commands/cache_clear.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/console/commands/help.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/console/commands/log_clear.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/console/commands/make_command.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/console/commands/scheduler_list.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/console/commands/scheduler_work.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/console/commands/test.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/console/commands/version.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/console/contracts/__init__.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/console/contracts/base_command.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/console/contracts/base_scheduler.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/console/contracts/cli_request.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/console/contracts/command.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/console/contracts/console.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/console/contracts/dumper.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/console/contracts/event.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/console/contracts/executor.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/console/contracts/kernel.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/console/contracts/progress_bar.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/console/contracts/reactor.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/console/contracts/schedule.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/console/contracts/schedule_event_listener.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/console/core/__init__.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/console/core/reactor.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/console/debug/__init__.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/console/debug/dumper.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/console/dynamic/__init__.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/console/dynamic/progress_bar.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/console/entities/__init__.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/console/entities/command.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/console/entities/event.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/console/entities/event_job.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/console/entities/scheduler_error.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/console/entities/scheduler_event_data.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/console/entities/scheduler_paused.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/console/entities/scheduler_resumed.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/console/entities/scheduler_shutdown.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/console/entities/scheduler_started.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/console/enums/__init__.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/console/enums/actions.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/console/enums/listener.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/console/enums/styles.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/console/exceptions/__init__.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/console/exceptions/cli_exceptions.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/console/fluent/__init__.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/console/fluent/command.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/console/fluent/event.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/console/kernel.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/console/output/__init__.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/console/output/console.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/console/output/executor.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/console/request/__init__.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/console/request/cli_request.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/console/stubs/command.stub +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/console/stubs/listener.stub +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/console/tasks/__init__.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/console/tasks/schedule.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/container/__init__.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/container/container.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/container/context/__init__.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/container/context/manager.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/container/context/scope.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/container/contracts/__init__.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/container/contracts/container.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/container/contracts/service_provider.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/container/entities/__init__.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/container/entities/binding.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/container/enums/__init__.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/container/enums/lifetimes.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/container/exceptions/__init__.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/container/exceptions/container.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/container/facades/__init__.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/container/facades/facade.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/container/providers/__init__.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/container/providers/service_provider.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/failure/__init__.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/failure/base/__init__.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/failure/base/handler.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/failure/catch.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/failure/contracts/__init__.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/failure/contracts/catch.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/failure/contracts/handler.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/failure/entities/__init__.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/failure/entities/throwable.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/foundation/__init__.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/foundation/application.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/foundation/config/__init__.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/foundation/config/app/__init__.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/foundation/config/app/entities/__init__.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/foundation/config/app/entities/app.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/foundation/config/app/enums/__init__.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/foundation/config/app/enums/ciphers.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/foundation/config/app/enums/environments.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/foundation/config/auth/__init__.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/foundation/config/auth/entities/__init__.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/foundation/config/auth/entities/auth.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/foundation/config/cache/__init__.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/foundation/config/cache/entities/__init__.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/foundation/config/cache/entities/cache.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/foundation/config/cache/entities/file.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/foundation/config/cache/entities/stores.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/foundation/config/cache/enums/__init__.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/foundation/config/cache/enums/drivers.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/foundation/config/cors/__init__.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/foundation/config/cors/entities/__init__.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/foundation/config/cors/entities/cors.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/foundation/config/database/__init__.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/foundation/config/database/entities/__init__.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/foundation/config/database/entities/connections.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/foundation/config/database/entities/database.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/foundation/config/database/entities/mysql.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/foundation/config/database/entities/oracle.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/foundation/config/database/entities/pgsql.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/foundation/config/database/entities/sqlite.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/foundation/config/database/enums/__init__.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/foundation/config/database/enums/mysql_charsets.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/foundation/config/database/enums/mysql_collations.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/foundation/config/database/enums/mysql_engine.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/foundation/config/database/enums/oracle_encoding.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/foundation/config/database/enums/oracle_nencoding.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/foundation/config/database/enums/pgsql_charsets.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/foundation/config/database/enums/pgsql_collations.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/foundation/config/database/enums/pgsql_mode.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/foundation/config/database/enums/sqlite_foreign_key.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/foundation/config/database/enums/sqlite_journal.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/foundation/config/database/enums/sqlite_synchronous.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/foundation/config/filesystems/__init__.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/foundation/config/filesystems/entitites/__init__.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/foundation/config/filesystems/entitites/aws.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/foundation/config/filesystems/entitites/disks.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/foundation/config/filesystems/entitites/filesystems.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/foundation/config/filesystems/entitites/local.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/foundation/config/filesystems/entitites/public.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/foundation/config/logging/__init__.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/foundation/config/logging/entities/__init__.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/foundation/config/logging/entities/channels.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/foundation/config/logging/entities/chunked.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/foundation/config/logging/entities/daily.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/foundation/config/logging/entities/hourly.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/foundation/config/logging/entities/logging.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/foundation/config/logging/entities/monthly.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/foundation/config/logging/entities/stack.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/foundation/config/logging/entities/weekly.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/foundation/config/logging/enums/__init__.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/foundation/config/logging/enums/levels.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/foundation/config/logging/validators/__init__.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/foundation/config/logging/validators/level.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/foundation/config/logging/validators/path.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/foundation/config/mail/__init__.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/foundation/config/mail/entities/__init__.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/foundation/config/mail/entities/file.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/foundation/config/mail/entities/mail.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/foundation/config/mail/entities/mailers.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/foundation/config/mail/entities/smtp.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/foundation/config/queue/__init__.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/foundation/config/queue/entities/__init__.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/foundation/config/queue/entities/brokers.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/foundation/config/queue/entities/database.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/foundation/config/queue/entities/queue.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/foundation/config/queue/enums/__init__.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/foundation/config/queue/enums/strategy.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/foundation/config/roots/__init__.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/foundation/config/roots/paths.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/foundation/config/session/__init__.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/foundation/config/session/entities/__init__.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/foundation/config/session/entities/session.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/foundation/config/session/enums/__init__.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/foundation/config/session/enums/same_site_policy.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/foundation/config/session/helpers/__init__.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/foundation/config/session/helpers/secret_key.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/foundation/config/startup.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/foundation/config/testing/__init__.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/foundation/config/testing/entities/__init__.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/foundation/config/testing/entities/testing.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/foundation/config/testing/enums/__init__.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/foundation/config/testing/enums/drivers.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/foundation/config/testing/enums/mode.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/foundation/config/testing/enums/verbosity.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/foundation/contracts/__init__.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/foundation/contracts/application.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/foundation/exceptions/__init__.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/foundation/exceptions/application.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/foundation/providers/__init__.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/foundation/providers/catch_provider.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/foundation/providers/cli_request_provider.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/foundation/providers/console_provider.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/foundation/providers/directory_provider.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/foundation/providers/dumper_provider.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/foundation/providers/executor_provider.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/foundation/providers/inspirational_provider.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/foundation/providers/logger_provider.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/foundation/providers/performance_counter_provider.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/foundation/providers/progress_bar_provider.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/foundation/providers/reactor_provider.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/foundation/providers/scheduler_provider.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/foundation/providers/testing_provider.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/foundation/providers/workers_provider.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/metadata/__init__.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/metadata/package.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/services/__init__.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/services/asynchrony/__init__.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/services/asynchrony/contracts/__init__.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/services/asynchrony/contracts/coroutines.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/services/asynchrony/coroutines.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/services/asynchrony/exceptions/__init__.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/services/asynchrony/exceptions/asynchrony.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/services/encrypter/encrypter.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/services/environment/__init__.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/services/environment/contracts/__init__.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/services/environment/contracts/caster.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/services/environment/contracts/env.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/services/environment/core/__init__.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/services/environment/core/dot_env.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/services/environment/dynamic/__init__.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/services/environment/dynamic/caster.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/services/environment/enums/__init__.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/services/environment/enums/value_type.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/services/environment/env.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/services/environment/exceptions/__init__.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/services/environment/exceptions/environment.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/services/environment/helpers/__init__.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/services/environment/helpers/functions.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/services/environment/key/__init__.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/services/environment/key/key_generator.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/services/environment/validators/__init__.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/services/environment/validators/key_name.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/services/environment/validators/types.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/services/file/__init__.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/services/file/contracts/__init__.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/services/file/contracts/directory.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/services/file/directory.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/services/inspirational/__init__.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/services/inspirational/contracts/__init__.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/services/inspirational/contracts/inspire.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/services/inspirational/inspire.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/services/inspirational/quotes.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/services/introspection/__init__.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/services/introspection/abstract/__init__.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/services/introspection/abstract/contracts/__init__.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/services/introspection/abstract/contracts/reflection.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/services/introspection/abstract/reflection.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/services/introspection/callables/__init__.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/services/introspection/callables/contracts/__init__.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/services/introspection/callables/contracts/reflection.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/services/introspection/callables/reflection.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/services/introspection/concretes/__init__.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/services/introspection/concretes/contracts/__init__.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/services/introspection/concretes/contracts/reflection.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/services/introspection/concretes/reflection.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/services/introspection/dependencies/__init__.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/services/introspection/dependencies/contracts/__init__.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/services/introspection/dependencies/contracts/reflection.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/services/introspection/dependencies/entities/__init__.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/services/introspection/dependencies/entities/argument.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/services/introspection/dependencies/entities/resolve_argument.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/services/introspection/dependencies/reflection.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/services/introspection/exceptions/__init__.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/services/introspection/exceptions/introspection.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/services/introspection/instances/__init__.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/services/introspection/instances/contracts/__init__.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/services/introspection/instances/contracts/reflection.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/services/introspection/instances/reflection.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/services/introspection/modules/__init__.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/services/introspection/modules/contracts/__init__.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/services/introspection/modules/contracts/reflection.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/services/introspection/modules/reflection.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/services/introspection/objects/__init__.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/services/introspection/objects/types.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/services/introspection/reflection.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/services/log/__init__.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/services/log/contracts/__init__.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/services/log/contracts/log_service.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/services/log/exceptions/__init__.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/services/log/exceptions/log.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/services/log/handlers/__init__.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/services/log/handlers/filename.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/services/log/handlers/size_rotating.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/services/log/handlers/timed_rotating.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/services/log/log_service.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/services/system/__init__.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/services/system/contracts/__init__.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/services/system/contracts/imports.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/services/system/contracts/workers.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/services/system/imports.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/services/system/runtime/__init__.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/services/system/runtime/imports.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/services/system/workers.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/support/__init__.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/support/collections/__init__.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/support/collections/collection.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/support/collections/contracts/__init__.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/support/collections/contracts/collection.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/support/entities/__init__.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/support/entities/base.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/support/facades/__init__.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/support/facades/application.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/support/facades/application.pyi +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/support/facades/console.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/support/facades/console.pyi +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/support/facades/directory.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/support/facades/directory.pyi +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/support/facades/dumper.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/support/facades/dumper.pyi +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/support/facades/executor.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/support/facades/executor.pyi +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/support/facades/inspire.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/support/facades/inspire.pyi +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/support/facades/logger.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/support/facades/logger.pyi +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/support/facades/performance_counter.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/support/facades/performance_counter.pyi +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/support/facades/progress_bar.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/support/facades/progress_bar.pyi +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/support/facades/reactor.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/support/facades/reactor.pyi +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/support/facades/testing.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/support/facades/testing.pyi +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/support/facades/workers.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/support/facades/workers.pyi +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/support/formatter/__init__.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/support/formatter/exceptions/__init__.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/support/formatter/exceptions/contracts/__init__.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/support/formatter/exceptions/contracts/parser.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/support/formatter/exceptions/parser.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/support/formatter/serializer.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/support/patterns/__init__.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/support/patterns/singleton/__init__.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/support/patterns/singleton/meta.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/support/performance/__init__.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/support/performance/contracts/__init__.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/support/performance/contracts/counter.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/support/performance/counter.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/support/standard/__init__.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/support/standard/contracts/__init__.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/support/standard/contracts/std.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/support/standard/exceptions/__init__.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/support/standard/exceptions/standard.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/support/standard/std.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/support/wrapper/__init__.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/support/wrapper/dataclass.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/support/wrapper/dot_dict.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/test/__init__.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/test/cases/__init__.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/test/cases/asynchronous.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/test/cases/synchronous.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/test/contracts/__init__.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/test/contracts/dumper.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/test/contracts/kernel.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/test/contracts/logs.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/test/contracts/printer.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/test/contracts/render.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/test/contracts/test_result.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/test/contracts/unit_test.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/test/core/__init__.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/test/core/unit_test.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/test/entities/__init__.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/test/entities/result.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/test/enums/__init__.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/test/enums/status.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/test/exceptions/__init__.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/test/exceptions/config.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/test/exceptions/failure.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/test/exceptions/persistence.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/test/exceptions/runtime.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/test/exceptions/value.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/test/kernel.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/test/output/__init__.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/test/output/dumper.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/test/output/printer.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/test/records/__init__.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/test/records/logs.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/test/validators/__init__.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/test/validators/base_path.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/test/validators/execution_mode.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/test/validators/fail_fast.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/test/validators/folder_path.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/test/validators/module_name.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/test/validators/name_pattern.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/test/validators/pattern.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/test/validators/persistent.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/test/validators/persistent_driver.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/test/validators/print_result.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/test/validators/tags.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/test/validators/throw_exception.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/test/validators/verbosity.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/test/validators/web_report.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/test/validators/workers.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/test/view/__init__.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/test/view/render.py +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis/test/view/report.stub +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis.egg-info/SOURCES.txt +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis.egg-info/dependency_links.txt +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis.egg-info/not-zip-safe +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis.egg-info/requires.txt +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/orionis.egg-info/top_level.txt +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/setup.cfg +0 -0
- {orionis-0.717.0 → orionis-0.718.0}/setup.py +0 -0
|
@@ -6,8 +6,6 @@ import urllib.parse
|
|
|
6
6
|
import uuid
|
|
7
7
|
import os
|
|
8
8
|
import html
|
|
9
|
-
import textwrap
|
|
10
|
-
import functools
|
|
11
9
|
from datetime import datetime
|
|
12
10
|
from typing import Any, Callable, Iterable, Optional, Union, List, Dict
|
|
13
11
|
import unicodedata
|
|
@@ -203,31 +201,6 @@ class Stringable(str):
|
|
|
203
201
|
# Check if string ends with any of the provided needles
|
|
204
202
|
return any(str(self).endswith(needle) for needle in needles)
|
|
205
203
|
|
|
206
|
-
# Alias for backwards compatibility
|
|
207
|
-
def ends_with(self, needles: Union[str, Iterable[str]]) -> bool:
|
|
208
|
-
"""
|
|
209
|
-
Alias for endsWith method to maintain backwards compatibility.
|
|
210
|
-
|
|
211
|
-
Checks if the string ends with any of the given substrings.
|
|
212
|
-
|
|
213
|
-
Parameters
|
|
214
|
-
----------
|
|
215
|
-
needles : str or Iterable[str]
|
|
216
|
-
Substring or substrings to check at the end of the string.
|
|
217
|
-
|
|
218
|
-
Returns
|
|
219
|
-
-------
|
|
220
|
-
bool
|
|
221
|
-
True if the string ends with any of the needle values, False otherwise.
|
|
222
|
-
"""
|
|
223
|
-
|
|
224
|
-
# Convert single string to list for uniform processing
|
|
225
|
-
if isinstance(needles, str):
|
|
226
|
-
needles = [needles]
|
|
227
|
-
|
|
228
|
-
# Check if string ends with any of the provided needles
|
|
229
|
-
return any(str(self).endswith(needle) for needle in needles)
|
|
230
|
-
|
|
231
204
|
def exactly(self, value: Any) -> bool:
|
|
232
205
|
"""
|
|
233
206
|
Check if the string is exactly equal to a given value.
|
|
@@ -278,33 +251,6 @@ class Stringable(str):
|
|
|
278
251
|
# Return True if the string has one or more characters
|
|
279
252
|
return not self.isEmpty()
|
|
280
253
|
|
|
281
|
-
# Aliases for backwards compatibility
|
|
282
|
-
def is_empty(self) -> bool:
|
|
283
|
-
"""
|
|
284
|
-
Alias for isEmpty method to maintain backwards compatibility.
|
|
285
|
-
|
|
286
|
-
Returns
|
|
287
|
-
-------
|
|
288
|
-
bool
|
|
289
|
-
True if the string is empty, False otherwise.
|
|
290
|
-
"""
|
|
291
|
-
|
|
292
|
-
# Call the camelCase method for compatibility
|
|
293
|
-
return self.isEmpty()
|
|
294
|
-
|
|
295
|
-
def is_not_empty(self) -> bool:
|
|
296
|
-
"""
|
|
297
|
-
Alias for isNotEmpty method to maintain backwards compatibility.
|
|
298
|
-
|
|
299
|
-
Returns
|
|
300
|
-
-------
|
|
301
|
-
bool
|
|
302
|
-
True if the string is not empty, False otherwise.
|
|
303
|
-
"""
|
|
304
|
-
|
|
305
|
-
# Call the camelCase method for compatibility
|
|
306
|
-
return self.isNotEmpty()
|
|
307
|
-
|
|
308
254
|
def lower(self) -> "Stringable":
|
|
309
255
|
"""
|
|
310
256
|
Convert the string to lowercase.
|
|
@@ -425,20 +371,6 @@ class Stringable(str):
|
|
|
425
371
|
else:
|
|
426
372
|
return Stringable(re.sub(r'<[^>]*>', '', str(self)))
|
|
427
373
|
|
|
428
|
-
# Alias for backwards compatibility
|
|
429
|
-
def strip_tags(self) -> "Stringable":
|
|
430
|
-
"""
|
|
431
|
-
Alias for stripTags method to maintain backwards compatibility.
|
|
432
|
-
|
|
433
|
-
Returns
|
|
434
|
-
-------
|
|
435
|
-
Stringable
|
|
436
|
-
New Stringable with HTML/PHP tags removed.
|
|
437
|
-
"""
|
|
438
|
-
|
|
439
|
-
# Call the camelCase method for compatibility
|
|
440
|
-
return self.stripTags()
|
|
441
|
-
|
|
442
374
|
def toBase64(self) -> "Stringable":
|
|
443
375
|
"""
|
|
444
376
|
Encode the string to Base64.
|
|
@@ -600,95 +532,6 @@ class Stringable(str):
|
|
|
600
532
|
# Check for common truthy values
|
|
601
533
|
return str(self).strip().lower() in ("1", "true", "on", "yes")
|
|
602
534
|
|
|
603
|
-
# Aliases for backwards compatibility
|
|
604
|
-
def to_base64(self) -> "Stringable":
|
|
605
|
-
"""
|
|
606
|
-
Alias for toBase64 method to maintain backwards compatibility.
|
|
607
|
-
|
|
608
|
-
Returns
|
|
609
|
-
-------
|
|
610
|
-
Stringable
|
|
611
|
-
New Stringable with base64 encoded content.
|
|
612
|
-
"""
|
|
613
|
-
|
|
614
|
-
# Call the camelCase method for compatibility
|
|
615
|
-
return self.toBase64()
|
|
616
|
-
|
|
617
|
-
def from_base64(self, strict: bool = False) -> "Stringable":
|
|
618
|
-
"""
|
|
619
|
-
Alias for fromBase64 method to maintain backwards compatibility.
|
|
620
|
-
|
|
621
|
-
Parameters
|
|
622
|
-
----------
|
|
623
|
-
strict : bool, optional
|
|
624
|
-
If True, raise exception on decode errors. Default is False.
|
|
625
|
-
|
|
626
|
-
Returns
|
|
627
|
-
-------
|
|
628
|
-
Stringable
|
|
629
|
-
New Stringable with base64 decoded content.
|
|
630
|
-
"""
|
|
631
|
-
|
|
632
|
-
# Call the camelCase method for compatibility
|
|
633
|
-
return self.fromBase64(strict)
|
|
634
|
-
|
|
635
|
-
def to_string(self) -> str:
|
|
636
|
-
"""
|
|
637
|
-
Alias for toString method to maintain backwards compatibility.
|
|
638
|
-
|
|
639
|
-
Returns
|
|
640
|
-
-------
|
|
641
|
-
str
|
|
642
|
-
String representation.
|
|
643
|
-
"""
|
|
644
|
-
|
|
645
|
-
# Call the camelCase method for compatibility
|
|
646
|
-
return self.toString()
|
|
647
|
-
|
|
648
|
-
def to_integer(self, base: int = 10) -> int:
|
|
649
|
-
"""
|
|
650
|
-
Alias for toInteger method to maintain backwards compatibility.
|
|
651
|
-
|
|
652
|
-
Parameters
|
|
653
|
-
----------
|
|
654
|
-
base : int, optional
|
|
655
|
-
Base for conversion. Default is 10.
|
|
656
|
-
|
|
657
|
-
Returns
|
|
658
|
-
-------
|
|
659
|
-
int
|
|
660
|
-
Integer representation.
|
|
661
|
-
"""
|
|
662
|
-
|
|
663
|
-
# Call the camelCase method for compatibility
|
|
664
|
-
return self.toInteger(base)
|
|
665
|
-
|
|
666
|
-
def to_float(self) -> float:
|
|
667
|
-
"""
|
|
668
|
-
Alias for toFloat method to maintain backwards compatibility.
|
|
669
|
-
|
|
670
|
-
Returns
|
|
671
|
-
-------
|
|
672
|
-
float
|
|
673
|
-
Float representation.
|
|
674
|
-
"""
|
|
675
|
-
|
|
676
|
-
# Call the camelCase method for compatibility
|
|
677
|
-
return self.toFloat()
|
|
678
|
-
|
|
679
|
-
def to_boolean(self) -> bool:
|
|
680
|
-
"""
|
|
681
|
-
Alias for toBoolean method to maintain backwards compatibility.
|
|
682
|
-
|
|
683
|
-
Returns
|
|
684
|
-
-------
|
|
685
|
-
bool
|
|
686
|
-
Boolean representation.
|
|
687
|
-
"""
|
|
688
|
-
|
|
689
|
-
# Call the camelCase method for compatibility
|
|
690
|
-
return self.toBoolean()
|
|
691
|
-
|
|
692
535
|
def __getitem__(self, key):
|
|
693
536
|
"""
|
|
694
537
|
Get item by index or slice.
|
|
@@ -720,7 +563,6 @@ class Stringable(str):
|
|
|
720
563
|
# Return the string representation
|
|
721
564
|
return super().__str__()
|
|
722
565
|
|
|
723
|
-
# camelCase wrappers for native Python string methods that use snake_case
|
|
724
566
|
def isAlnum(self) -> bool:
|
|
725
567
|
"""
|
|
726
568
|
Check if all characters in the string are alphanumeric.
|
|
@@ -943,7 +785,6 @@ class Stringable(str):
|
|
|
943
785
|
# Use Python's built-in zfill to pad with zeros while preserving sign
|
|
944
786
|
return Stringable(str(self).zfill(width))
|
|
945
787
|
|
|
946
|
-
# Text conversion methods
|
|
947
788
|
def ascii(self, language: str = 'en') -> "Stringable":
|
|
948
789
|
"""
|
|
949
790
|
Transliterate a UTF-8 value to ASCII.
|
|
@@ -1165,7 +1006,6 @@ class Stringable(str):
|
|
|
1165
1006
|
return Stringable(self)
|
|
1166
1007
|
return Stringable(self[0].lower() + self[1:])
|
|
1167
1008
|
|
|
1168
|
-
# Validation methods
|
|
1169
1009
|
def isAscii(self) -> bool:
|
|
1170
1010
|
"""
|
|
1171
1011
|
Determine if a given string is 7 bit ASCII.
|
|
@@ -1260,7 +1100,6 @@ class Stringable(str):
|
|
|
1260
1100
|
ulid_pattern = r'^[0123456789ABCDEFGHJKMNPQRSTVWXYZ]{26}$'
|
|
1261
1101
|
return bool(re.match(ulid_pattern, str(self).upper()))
|
|
1262
1102
|
|
|
1263
|
-
# String manipulation methods
|
|
1264
1103
|
def chopStart(self, needle: Union[str, List[str]]) -> "Stringable":
|
|
1265
1104
|
"""
|
|
1266
1105
|
Remove the given string if it exists at the start of the current string.
|
|
@@ -1328,7 +1167,7 @@ class Stringable(str):
|
|
|
1328
1167
|
pattern = re.escape(character) + '+'
|
|
1329
1168
|
return Stringable(re.sub(pattern, character, str(self)))
|
|
1330
1169
|
|
|
1331
|
-
def mask(self, character: str, index: int, length: Optional[int] = None
|
|
1170
|
+
def mask(self, character: str, index: int, length: Optional[int] = None) -> "Stringable":
|
|
1332
1171
|
"""
|
|
1333
1172
|
Masks a portion of a string with a repeated character.
|
|
1334
1173
|
|
|
@@ -1340,8 +1179,6 @@ class Stringable(str):
|
|
|
1340
1179
|
Starting index for masking
|
|
1341
1180
|
length : int, optional
|
|
1342
1181
|
Length to mask, by default None (to end of string)
|
|
1343
|
-
encoding : str, optional
|
|
1344
|
-
String encoding, by default 'UTF-8'
|
|
1345
1182
|
|
|
1346
1183
|
Returns
|
|
1347
1184
|
-------
|
|
@@ -1524,7 +1361,6 @@ class Stringable(str):
|
|
|
1524
1361
|
"""
|
|
1525
1362
|
return Stringable(str(self).rstrip(characters))
|
|
1526
1363
|
|
|
1527
|
-
# Search and positioning methods
|
|
1528
1364
|
def charAt(self, index: int) -> Union[str, bool]:
|
|
1529
1365
|
"""
|
|
1530
1366
|
Get the character at the specified index.
|
|
@@ -1690,7 +1526,6 @@ class Stringable(str):
|
|
|
1690
1526
|
|
|
1691
1527
|
return excerpt
|
|
1692
1528
|
|
|
1693
|
-
# Text and file methods
|
|
1694
1529
|
def basename(self, suffix: str = '') -> "Stringable":
|
|
1695
1530
|
"""
|
|
1696
1531
|
Get the trailing name component of the path.
|
|
@@ -1833,7 +1668,6 @@ class Stringable(str):
|
|
|
1833
1668
|
s = prefix + s
|
|
1834
1669
|
return Stringable(s)
|
|
1835
1670
|
|
|
1836
|
-
# Array and split methods
|
|
1837
1671
|
def explode(self, delimiter: str, limit: int = -1) -> List[str]:
|
|
1838
1672
|
"""
|
|
1839
1673
|
Explode the string into a list using a delimiter.
|
|
@@ -1871,7 +1705,7 @@ class Stringable(str):
|
|
|
1871
1705
|
pattern : str or int
|
|
1872
1706
|
Regular expression pattern or length for splitting
|
|
1873
1707
|
limit : int, optional
|
|
1874
|
-
Maximum splits, by default -1
|
|
1708
|
+
Maximum splits, by default -1 (no limit)
|
|
1875
1709
|
flags : int, optional
|
|
1876
1710
|
Regex flags, by default 0
|
|
1877
1711
|
|
|
@@ -1886,7 +1720,9 @@ class Stringable(str):
|
|
|
1886
1720
|
return [s[i:i+pattern] for i in range(0, len(s), pattern)]
|
|
1887
1721
|
else:
|
|
1888
1722
|
# Split by regex
|
|
1889
|
-
|
|
1723
|
+
# In re.split, maxsplit=0 means no limit, -1 means no splits
|
|
1724
|
+
maxsplit = 0 if limit == -1 else limit
|
|
1725
|
+
segments = re.split(pattern, str(self), maxsplit=maxsplit, flags=flags)
|
|
1890
1726
|
return segments if segments else []
|
|
1891
1727
|
|
|
1892
1728
|
def ucsplit(self) -> List[str]:
|
|
@@ -2302,24 +2138,24 @@ class Stringable(str):
|
|
|
2302
2138
|
s = str(self)
|
|
2303
2139
|
if len(s) == 0:
|
|
2304
2140
|
return Stringable(s)
|
|
2305
|
-
|
|
2141
|
+
|
|
2306
2142
|
# Split by uppercase letters to find words
|
|
2307
2143
|
words = re.findall(r'[A-Z][a-z]*|[a-z]+', s)
|
|
2308
2144
|
if not words:
|
|
2309
2145
|
return Stringable(s)
|
|
2310
|
-
|
|
2146
|
+
|
|
2311
2147
|
# Determine if we need plural
|
|
2312
2148
|
if isinstance(count, (list, tuple)):
|
|
2313
2149
|
need_plural = len(count) != 1
|
|
2314
2150
|
else:
|
|
2315
2151
|
need_plural = count != 1
|
|
2316
|
-
|
|
2152
|
+
|
|
2317
2153
|
if need_plural:
|
|
2318
2154
|
# Pluralize the last word
|
|
2319
2155
|
last_word = words[-1]
|
|
2320
2156
|
pluralized = Stringable(last_word).plural(count)
|
|
2321
2157
|
words[-1] = pluralized.studly().value()
|
|
2322
|
-
|
|
2158
|
+
|
|
2323
2159
|
return Stringable(''.join(words))
|
|
2324
2160
|
|
|
2325
2161
|
def singular(self) -> "Stringable":
|
|
@@ -2378,7 +2214,6 @@ class Stringable(str):
|
|
|
2378
2214
|
else:
|
|
2379
2215
|
return [callback_str, default]
|
|
2380
2216
|
|
|
2381
|
-
# Conditional methods (when)
|
|
2382
2217
|
def when(self, condition: Union[bool, Callable], callback: Callable, default: Optional[Callable] = None) -> "Stringable":
|
|
2383
2218
|
"""
|
|
2384
2219
|
Execute the given callback if condition is true.
|
|
@@ -2506,7 +2341,7 @@ class Stringable(str):
|
|
|
2506
2341
|
Stringable
|
|
2507
2342
|
Result of callback execution or self
|
|
2508
2343
|
"""
|
|
2509
|
-
return self.when(self.
|
|
2344
|
+
return self.when(self.endsWith(needles), callback, default)
|
|
2510
2345
|
|
|
2511
2346
|
def whenDoesntEndWith(self, needles: Union[str, List[str]], callback: Callable, default: Optional[Callable] = None) -> "Stringable":
|
|
2512
2347
|
"""
|
|
@@ -2526,7 +2361,7 @@ class Stringable(str):
|
|
|
2526
2361
|
Stringable
|
|
2527
2362
|
Result of callback execution or self
|
|
2528
2363
|
"""
|
|
2529
|
-
return self.when(not self.
|
|
2364
|
+
return self.when(not self.endsWith(needles), callback, default)
|
|
2530
2365
|
|
|
2531
2366
|
def whenExactly(self, value: str, callback: Callable, default: Optional[Callable] = None) -> "Stringable":
|
|
2532
2367
|
"""
|
|
@@ -2634,18 +2469,19 @@ class Stringable(str):
|
|
|
2634
2469
|
"""
|
|
2635
2470
|
return self.when(self.test(pattern), callback, default)
|
|
2636
2471
|
|
|
2637
|
-
|
|
2638
|
-
def convertCase(self, mode: int = None, encoding: Optional[str] = 'UTF-8') -> "Stringable":
|
|
2472
|
+
def convertCase(self, mode: int = None) -> "Stringable":
|
|
2639
2473
|
"""
|
|
2640
2474
|
Convert the case of a string.
|
|
2641
2475
|
|
|
2642
2476
|
Parameters
|
|
2643
2477
|
----------
|
|
2644
2478
|
mode : int, optional
|
|
2645
|
-
Case conversion mode
|
|
2646
|
-
|
|
2647
|
-
|
|
2648
|
-
|
|
2479
|
+
Case conversion mode:
|
|
2480
|
+
0 or None - MB_CASE_FOLD (casefold)
|
|
2481
|
+
1 - MB_CASE_UPPER (upper)
|
|
2482
|
+
2 - MB_CASE_LOWER (lower)
|
|
2483
|
+
3 - MB_CASE_TITLE (title)
|
|
2484
|
+
by default None (MB_CASE_FOLD)
|
|
2649
2485
|
Returns
|
|
2650
2486
|
-------
|
|
2651
2487
|
Stringable
|
|
@@ -2860,7 +2696,6 @@ class Stringable(str):
|
|
|
2860
2696
|
matches = re.findall(pattern, str(self))
|
|
2861
2697
|
return list(matches[0]) if matches else []
|
|
2862
2698
|
|
|
2863
|
-
# Additional methods for compatibility
|
|
2864
2699
|
def prepend(self, *values: str) -> "Stringable":
|
|
2865
2700
|
"""
|
|
2866
2701
|
Prepend the given values to the string.
|
|
@@ -2877,7 +2712,7 @@ class Stringable(str):
|
|
|
2877
2712
|
"""
|
|
2878
2713
|
return Stringable(''.join(values) + str(self))
|
|
2879
2714
|
|
|
2880
|
-
def substr(self, start: int, length: Optional[int] = None
|
|
2715
|
+
def substr(self, start: int, length: Optional[int] = None) -> "Stringable":
|
|
2881
2716
|
"""
|
|
2882
2717
|
Returns the portion of the string specified by the start and length parameters.
|
|
2883
2718
|
|
|
@@ -2887,8 +2722,6 @@ class Stringable(str):
|
|
|
2887
2722
|
Starting position
|
|
2888
2723
|
length : int, optional
|
|
2889
2724
|
Length to extract, by default None
|
|
2890
|
-
encoding : str, optional
|
|
2891
|
-
String encoding (for compatibility), by default 'UTF-8'
|
|
2892
2725
|
|
|
2893
2726
|
Returns
|
|
2894
2727
|
-------
|
|
@@ -2901,7 +2734,6 @@ class Stringable(str):
|
|
|
2901
2734
|
else:
|
|
2902
2735
|
return Stringable(s[start:start + length])
|
|
2903
2736
|
|
|
2904
|
-
# Additional compatibility methods
|
|
2905
2737
|
def doesntContain(self, needles: Union[str, List[str]], ignore_case: bool = False) -> bool:
|
|
2906
2738
|
"""
|
|
2907
2739
|
Determine if a given string doesn't contain a given substring.
|
|
@@ -2952,7 +2784,7 @@ class Stringable(str):
|
|
|
2952
2784
|
bool
|
|
2953
2785
|
True if string doesn't end with any needle, False otherwise
|
|
2954
2786
|
"""
|
|
2955
|
-
return not self.
|
|
2787
|
+
return not self.endsWith(needles)
|
|
2956
2788
|
|
|
2957
2789
|
def startsWith(self, needles: Union[str, List[str]]) -> bool:
|
|
2958
2790
|
"""
|
|
@@ -2972,7 +2804,6 @@ class Stringable(str):
|
|
|
2972
2804
|
needles = [needles]
|
|
2973
2805
|
return any(str(self).startswith(needle) for needle in needles)
|
|
2974
2806
|
|
|
2975
|
-
# Methods for array-like behavior and JSON serialization
|
|
2976
2807
|
def jsonSerialize(self) -> str:
|
|
2977
2808
|
"""
|
|
2978
2809
|
Convert the object to a string when JSON encoded.
|
|
@@ -3020,55 +2851,6 @@ class Stringable(str):
|
|
|
3020
2851
|
"""
|
|
3021
2852
|
return str(self)[offset]
|
|
3022
2853
|
|
|
3023
|
-
def offsetSet(self, offset: int, value: str) -> None:
|
|
3024
|
-
"""
|
|
3025
|
-
Set the value at the given offset.
|
|
3026
|
-
|
|
3027
|
-
Note: Strings are immutable in Python, so this method exists primarily
|
|
3028
|
-
for interface compatibility and cannot actually modify the string in place.
|
|
3029
|
-
|
|
3030
|
-
Parameters
|
|
3031
|
-
----------
|
|
3032
|
-
offset : int
|
|
3033
|
-
The offset position to set.
|
|
3034
|
-
value : str
|
|
3035
|
-
The value to set at the specified offset.
|
|
3036
|
-
|
|
3037
|
-
Returns
|
|
3038
|
-
-------
|
|
3039
|
-
None
|
|
3040
|
-
This method does not return a value due to string immutability.
|
|
3041
|
-
"""
|
|
3042
|
-
|
|
3043
|
-
# Since strings are immutable, we can't actually modify in place
|
|
3044
|
-
# This method exists for interface compatibility but doesn't modify self
|
|
3045
|
-
s = list(str(self))
|
|
3046
|
-
s[offset] = value
|
|
3047
|
-
# Note: This doesn't actually modify self due to immutability
|
|
3048
|
-
|
|
3049
|
-
def offsetUnset(self, offset: int) -> None:
|
|
3050
|
-
"""
|
|
3051
|
-
Unset the value at the given offset.
|
|
3052
|
-
|
|
3053
|
-
Note: Strings are immutable in Python, so this method exists primarily
|
|
3054
|
-
for interface compatibility and cannot actually remove characters in place.
|
|
3055
|
-
|
|
3056
|
-
Parameters
|
|
3057
|
-
----------
|
|
3058
|
-
offset : int
|
|
3059
|
-
The offset position to unset.
|
|
3060
|
-
|
|
3061
|
-
Returns
|
|
3062
|
-
-------
|
|
3063
|
-
None
|
|
3064
|
-
This method does not return a value due to string immutability.
|
|
3065
|
-
"""
|
|
3066
|
-
|
|
3067
|
-
# Since strings are immutable, we can't actually modify in place
|
|
3068
|
-
# This method exists for interface compatibility but doesn't modify self
|
|
3069
|
-
pass
|
|
3070
|
-
|
|
3071
|
-
# Additional Laravel methods that might be missing
|
|
3072
2854
|
def isPattern(self, pattern: Union[str, List[str]], ignore_case: bool = False) -> bool:
|
|
3073
2855
|
"""
|
|
3074
2856
|
Determine if a given string matches a given pattern.
|
|
@@ -3131,72 +2913,6 @@ class Stringable(str):
|
|
|
3131
2913
|
|
|
3132
2914
|
return all(needle in s for needle in needles)
|
|
3133
2915
|
|
|
3134
|
-
# Additional string transformation methods
|
|
3135
|
-
def markdown(self, options: Optional[Dict] = None, extensions: Optional[List] = None) -> "Stringable":
|
|
3136
|
-
"""
|
|
3137
|
-
Convert GitHub flavored Markdown into HTML.
|
|
3138
|
-
Note: This is a placeholder - would need a markdown library for full implementation.
|
|
3139
|
-
|
|
3140
|
-
Parameters
|
|
3141
|
-
----------
|
|
3142
|
-
options : dict, optional
|
|
3143
|
-
Markdown processing options, by default None
|
|
3144
|
-
extensions : list, optional
|
|
3145
|
-
Markdown extensions, by default None
|
|
3146
|
-
|
|
3147
|
-
Returns
|
|
3148
|
-
-------
|
|
3149
|
-
Stringable
|
|
3150
|
-
A new Stringable with HTML (placeholder implementation)
|
|
3151
|
-
"""
|
|
3152
|
-
# Placeholder implementation - would need python-markdown or similar
|
|
3153
|
-
return Stringable(str(self))
|
|
3154
|
-
|
|
3155
|
-
def inlineMarkdown(self, options: Optional[Dict] = None, extensions: Optional[List] = None) -> "Stringable":
|
|
3156
|
-
"""
|
|
3157
|
-
Convert inline Markdown into HTML.
|
|
3158
|
-
Note: This is a placeholder - would need a markdown library for full implementation.
|
|
3159
|
-
|
|
3160
|
-
Parameters
|
|
3161
|
-
----------
|
|
3162
|
-
options : dict, optional
|
|
3163
|
-
Markdown processing options, by default None
|
|
3164
|
-
extensions : list, optional
|
|
3165
|
-
Markdown extensions, by default None
|
|
3166
|
-
|
|
3167
|
-
Returns
|
|
3168
|
-
-------
|
|
3169
|
-
Stringable
|
|
3170
|
-
A new Stringable with HTML (placeholder implementation)
|
|
3171
|
-
"""
|
|
3172
|
-
# Placeholder implementation - would need python-markdown or similar
|
|
3173
|
-
return Stringable(str(self))
|
|
3174
|
-
|
|
3175
|
-
def dump(self, *args) -> "Stringable":
|
|
3176
|
-
"""
|
|
3177
|
-
Dump the string to stdout for debugging purposes.
|
|
3178
|
-
|
|
3179
|
-
Outputs the current string value along with any additional arguments to
|
|
3180
|
-
the console, useful for debugging and inspection during development.
|
|
3181
|
-
|
|
3182
|
-
Parameters
|
|
3183
|
-
----------
|
|
3184
|
-
*args : Any
|
|
3185
|
-
Additional arguments to output alongside the string.
|
|
3186
|
-
|
|
3187
|
-
Returns
|
|
3188
|
-
-------
|
|
3189
|
-
Stringable
|
|
3190
|
-
The same Stringable instance for method chaining.
|
|
3191
|
-
"""
|
|
3192
|
-
|
|
3193
|
-
# Print the string value along with any additional arguments
|
|
3194
|
-
print(str(self), *args)
|
|
3195
|
-
|
|
3196
|
-
# Return self to allow method chaining
|
|
3197
|
-
return self
|
|
3198
|
-
|
|
3199
|
-
# Additional Laravel-compatible methods
|
|
3200
2916
|
def whenIs(self, pattern: Union[str, List[str]], callback: Callable, default: Optional[Callable] = None) -> "Stringable":
|
|
3201
2917
|
"""
|
|
3202
2918
|
Execute the given callback if the string matches a given pattern.
|
|
@@ -3271,43 +2987,7 @@ class Stringable(str):
|
|
|
3271
2987
|
"""
|
|
3272
2988
|
return self.when(self.isUlid(), callback, default)
|
|
3273
2989
|
|
|
3274
|
-
def isPattern(self, pattern: Union[str, List[str]], ignore_case: bool = False) -> bool:
|
|
3275
|
-
"""
|
|
3276
|
-
Determine if a given string matches a given pattern.
|
|
3277
2990
|
|
|
3278
|
-
This method supports wildcard patterns using * and ? characters.
|
|
3279
|
-
|
|
3280
|
-
Parameters
|
|
3281
|
-
----------
|
|
3282
|
-
pattern : str or list
|
|
3283
|
-
Pattern(s) to match against
|
|
3284
|
-
ignore_case : bool, optional
|
|
3285
|
-
Whether to ignore case, by default False
|
|
3286
|
-
|
|
3287
|
-
Returns
|
|
3288
|
-
-------
|
|
3289
|
-
bool
|
|
3290
|
-
True if string matches pattern, False otherwise
|
|
3291
|
-
"""
|
|
3292
|
-
if isinstance(pattern, str):
|
|
3293
|
-
pattern = [pattern]
|
|
3294
|
-
|
|
3295
|
-
s = str(self)
|
|
3296
|
-
if ignore_case:
|
|
3297
|
-
s = s.lower()
|
|
3298
|
-
|
|
3299
|
-
for p in pattern:
|
|
3300
|
-
if ignore_case:
|
|
3301
|
-
p = p.lower()
|
|
3302
|
-
|
|
3303
|
-
# Convert wildcard pattern to regex
|
|
3304
|
-
regex_pattern = re.escape(p).replace(r'\*', '.*').replace(r'\?', '.')
|
|
3305
|
-
regex_pattern = f'^{regex_pattern}$'
|
|
3306
|
-
|
|
3307
|
-
if re.match(regex_pattern, s):
|
|
3308
|
-
return True
|
|
3309
|
-
|
|
3310
|
-
return False
|
|
3311
2991
|
|
|
3312
2992
|
def toDate(self, format_str: Optional[str] = None) -> Optional[datetime]:
|
|
3313
2993
|
"""
|
|
@@ -3324,15 +3004,14 @@ class Stringable(str):
|
|
|
3324
3004
|
Parsed datetime object or None if parsing fails
|
|
3325
3005
|
"""
|
|
3326
3006
|
|
|
3327
|
-
|
|
3328
3007
|
s = str(self)
|
|
3329
|
-
|
|
3008
|
+
|
|
3330
3009
|
if format_str:
|
|
3331
3010
|
try:
|
|
3332
3011
|
return datetime.strptime(s, format_str)
|
|
3333
3012
|
except ValueError:
|
|
3334
3013
|
return None
|
|
3335
|
-
|
|
3014
|
+
|
|
3336
3015
|
# Try common date formats
|
|
3337
3016
|
common_formats = [
|
|
3338
3017
|
'%Y-%m-%d',
|
|
@@ -3344,16 +3023,16 @@ class Stringable(str):
|
|
|
3344
3023
|
'%d-%m-%Y',
|
|
3345
3024
|
'%m-%d-%Y'
|
|
3346
3025
|
]
|
|
3347
|
-
|
|
3026
|
+
|
|
3348
3027
|
for fmt in common_formats:
|
|
3349
3028
|
try:
|
|
3350
3029
|
return datetime.strptime(s, fmt)
|
|
3351
3030
|
except ValueError:
|
|
3352
3031
|
continue
|
|
3353
|
-
|
|
3032
|
+
|
|
3354
3033
|
return None
|
|
3355
3034
|
|
|
3356
|
-
def encrypt(self
|
|
3035
|
+
def encrypt(self) -> "Stringable":
|
|
3357
3036
|
"""
|
|
3358
3037
|
Encrypt the string (placeholder implementation).
|
|
3359
3038
|
|
|
@@ -3362,19 +3041,17 @@ class Stringable(str):
|
|
|
3362
3041
|
|
|
3363
3042
|
Parameters
|
|
3364
3043
|
----------
|
|
3365
|
-
|
|
3366
|
-
Whether to serialize the value before encryption, by default False
|
|
3044
|
+
None
|
|
3367
3045
|
|
|
3368
3046
|
Returns
|
|
3369
3047
|
-------
|
|
3370
3048
|
Stringable
|
|
3371
3049
|
Encrypted string (base64 encoded for this placeholder)
|
|
3372
3050
|
"""
|
|
3373
|
-
|
|
3374
|
-
# In a real implementation, use proper encryption
|
|
3051
|
+
|
|
3375
3052
|
return self.toBase64()
|
|
3376
3053
|
|
|
3377
|
-
def decrypt(self
|
|
3054
|
+
def decrypt(self) -> "Stringable":
|
|
3378
3055
|
"""
|
|
3379
3056
|
Decrypt the string (placeholder implementation).
|
|
3380
3057
|
|
|
@@ -3383,16 +3060,14 @@ class Stringable(str):
|
|
|
3383
3060
|
|
|
3384
3061
|
Parameters
|
|
3385
3062
|
----------
|
|
3386
|
-
|
|
3387
|
-
Whether to unserialize the value after decryption, by default False
|
|
3063
|
+
None
|
|
3388
3064
|
|
|
3389
3065
|
Returns
|
|
3390
3066
|
-------
|
|
3391
3067
|
Stringable
|
|
3392
3068
|
Decrypted string
|
|
3393
3069
|
"""
|
|
3394
|
-
|
|
3395
|
-
# In a real implementation, use proper decryption
|
|
3070
|
+
|
|
3396
3071
|
return self.fromBase64()
|
|
3397
3072
|
|
|
3398
3073
|
def toHtmlString(self) -> "Stringable":
|
|
@@ -3407,20 +3082,6 @@ class Stringable(str):
|
|
|
3407
3082
|
# Escape HTML entities
|
|
3408
3083
|
return Stringable(html.escape(str(self)))
|
|
3409
3084
|
|
|
3410
|
-
def dd(self, *args) -> None:
|
|
3411
|
-
"""
|
|
3412
|
-
Dump the string and halt execution.
|
|
3413
|
-
|
|
3414
|
-
Parameters
|
|
3415
|
-
----------
|
|
3416
|
-
*args : Any
|
|
3417
|
-
Additional arguments to dump
|
|
3418
|
-
"""
|
|
3419
|
-
print(str(self), *args)
|
|
3420
|
-
import sys
|
|
3421
|
-
sys.exit(1)
|
|
3422
|
-
|
|
3423
|
-
# Additional method aliases and compatibility methods
|
|
3424
3085
|
def tap(self, callback: Callable) -> "Stringable":
|
|
3425
3086
|
"""
|
|
3426
3087
|
Call the given callback with the string and return the string.
|