Skip to content

Latest commit

Β 

History

History
720 lines (719 loc) Β· 36.3 KB

File metadata and controls

720 lines (719 loc) Β· 36.3 KB

Package Structure (full)

πŸ“¦ easydiffraction
β”œβ”€β”€ πŸ“ analysis
β”‚   β”œβ”€β”€ πŸ“ calculators
β”‚   β”‚   β”œβ”€β”€ πŸ“„ __init__.py
β”‚   β”‚   β”œβ”€β”€ πŸ“„ base.py
β”‚   β”‚   β”‚   β”œβ”€β”€ 🏷️ class PowderReflnRecord
β”‚   β”‚   β”‚   └── 🏷️ class CalculatorBase
β”‚   β”‚   β”œβ”€β”€ πŸ“„ crysfml.py
β”‚   β”‚   β”‚   └── 🏷️ class CrysfmlCalculator
β”‚   β”‚   β”œβ”€β”€ πŸ“„ cryspy.py
β”‚   β”‚   β”‚   └── 🏷️ class CryspyCalculator
β”‚   β”‚   β”œβ”€β”€ πŸ“„ factory.py
β”‚   β”‚   β”‚   └── 🏷️ class CalculatorFactory
β”‚   β”‚   β”œβ”€β”€ πŸ“„ pdffit.py
β”‚   β”‚   β”‚   └── 🏷️ class PdffitCalculator
β”‚   β”‚   └── πŸ“„ support.py
β”‚   β”‚       └── 🏷️ class SupportEntry
β”‚   β”œβ”€β”€ πŸ“ categories
β”‚   β”‚   β”œβ”€β”€ πŸ“ aliases
β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ __init__.py
β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ default.py
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ 🏷️ class Alias
β”‚   β”‚   β”‚   β”‚   └── 🏷️ class Aliases
β”‚   β”‚   β”‚   └── πŸ“„ factory.py
β”‚   β”‚   β”‚       └── 🏷️ class AliasesFactory
β”‚   β”‚   β”œβ”€β”€ πŸ“ constraints
β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ __init__.py
β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ default.py
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ 🏷️ class Constraint
β”‚   β”‚   β”‚   β”‚   └── 🏷️ class Constraints
β”‚   β”‚   β”‚   └── πŸ“„ factory.py
β”‚   β”‚   β”‚       └── 🏷️ class ConstraintsFactory
β”‚   β”‚   β”œβ”€β”€ πŸ“ fit_parameter_correlations
β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ __init__.py
β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ default.py
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ 🏷️ class FitParameterCorrelationItem
β”‚   β”‚   β”‚   β”‚   └── 🏷️ class FitParameterCorrelations
β”‚   β”‚   β”‚   └── πŸ“„ factory.py
β”‚   β”‚   β”‚       └── 🏷️ class FitParameterCorrelationsFactory
β”‚   β”‚   β”œβ”€β”€ πŸ“ fit_parameters
β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ __init__.py
β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ default.py
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ 🏷️ class FitParameterItem
β”‚   β”‚   β”‚   β”‚   └── 🏷️ class FitParameters
β”‚   β”‚   β”‚   └── πŸ“„ factory.py
β”‚   β”‚   β”‚       └── 🏷️ class FitParametersFactory
β”‚   β”‚   β”œβ”€β”€ πŸ“ fit_result
β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ __init__.py
β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ base.py
β”‚   β”‚   β”‚   β”‚   └── 🏷️ class FitResultBase
β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ bayesian.py
β”‚   β”‚   β”‚   β”‚   └── 🏷️ class BayesianFitResult
β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ default.py
β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ factory.py
β”‚   β”‚   β”‚   β”‚   └── 🏷️ class FitResultFactory
β”‚   β”‚   β”‚   └── πŸ“„ lsq.py
β”‚   β”‚   β”‚       β”œβ”€β”€ 🏷️ class _LeastSquaresCoreProperties
β”‚   β”‚   β”‚       β”œβ”€β”€ 🏷️ class _LeastSquaresReflectionProperties
β”‚   β”‚   β”‚       β”œβ”€β”€ 🏷️ class _LeastSquaresPowderProperties
β”‚   β”‚   β”‚       └── 🏷️ class LeastSquaresFitResult
β”‚   β”‚   β”œβ”€β”€ πŸ“ fitting_mode
β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ __init__.py
β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ default.py
β”‚   β”‚   β”‚   β”‚   └── 🏷️ class FittingMode
β”‚   β”‚   β”‚   └── πŸ“„ factory.py
β”‚   β”‚   β”‚       └── 🏷️ class FittingModeFactory
β”‚   β”‚   β”œβ”€β”€ πŸ“ joint_fit
β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ __init__.py
β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ default.py
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ 🏷️ class JointFitItem
β”‚   β”‚   β”‚   β”‚   └── 🏷️ class JointFitCollection
β”‚   β”‚   β”‚   └── πŸ“„ factory.py
β”‚   β”‚   β”‚       └── 🏷️ class JointFitFactory
β”‚   β”‚   β”œβ”€β”€ πŸ“ minimizer
β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ __init__.py
β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ base.py
β”‚   β”‚   β”‚   β”‚   └── 🏷️ class MinimizerCategoryBase
β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ bayesian_base.py
β”‚   β”‚   β”‚   β”‚   └── 🏷️ class BayesianMinimizerBase
β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ bumps.py
β”‚   β”‚   β”‚   β”‚   └── 🏷️ class BumpsMinimizer
β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ bumps_amoeba.py
β”‚   β”‚   β”‚   β”‚   └── 🏷️ class BumpsAmoebaMinimizer
β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ bumps_de.py
β”‚   β”‚   β”‚   β”‚   └── 🏷️ class BumpsDeMinimizer
β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ bumps_dream.py
β”‚   β”‚   β”‚   β”‚   └── 🏷️ class BumpsDreamMinimizer
β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ bumps_lm.py
β”‚   β”‚   β”‚   β”‚   └── 🏷️ class BumpsLmMinimizer
β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ dfols.py
β”‚   β”‚   β”‚   β”‚   └── 🏷️ class DfolsMinimizer
β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ emcee.py
β”‚   β”‚   β”‚   β”‚   └── 🏷️ class EmceeMinimizer
β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ factory.py
β”‚   β”‚   β”‚   β”‚   └── 🏷️ class MinimizerCategoryFactory
β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ lmfit.py
β”‚   β”‚   β”‚   β”‚   └── 🏷️ class LmfitMinimizer
β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ lmfit_least_squares.py
β”‚   β”‚   β”‚   β”‚   └── 🏷️ class LmfitLeastSquaresMinimizer
β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ lmfit_leastsq.py
β”‚   β”‚   β”‚   β”‚   └── 🏷️ class LmfitLeastsqMinimizer
β”‚   β”‚   β”‚   └── πŸ“„ lsq_base.py
β”‚   β”‚   β”‚       └── 🏷️ class LeastSquaresMinimizerBase
β”‚   β”‚   β”œβ”€β”€ πŸ“ sequential_fit
β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ __init__.py
β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ default.py
β”‚   β”‚   β”‚   β”‚   └── 🏷️ class SequentialFit
β”‚   β”‚   β”‚   └── πŸ“„ factory.py
β”‚   β”‚   β”‚       └── 🏷️ class SequentialFitFactory
β”‚   β”‚   β”œβ”€β”€ πŸ“ sequential_fit_extract
β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ __init__.py
β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ default.py
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ 🏷️ class SequentialFitExtractItem
β”‚   β”‚   β”‚   β”‚   └── 🏷️ class SequentialFitExtractCollection
β”‚   β”‚   β”‚   └── πŸ“„ factory.py
β”‚   β”‚   β”‚       └── 🏷️ class SequentialFitExtractFactory
β”‚   β”‚   β”œβ”€β”€ πŸ“ software
β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ __init__.py
β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ base.py
β”‚   β”‚   β”‚   β”‚   └── 🏷️ class SoftwareRole
β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ default.py
β”‚   β”‚   β”‚   β”‚   └── 🏷️ class Software
β”‚   β”‚   β”‚   └── πŸ“„ factory.py
β”‚   β”‚   β”‚       └── 🏷️ class SoftwareFactory
β”‚   β”‚   └── πŸ“„ __init__.py
β”‚   β”œβ”€β”€ πŸ“ fit_helpers
β”‚   β”‚   β”œβ”€β”€ πŸ“„ __init__.py
β”‚   β”‚   β”œβ”€β”€ πŸ“„ _diagnostics.py
β”‚   β”‚   β”œβ”€β”€ πŸ“„ bayesian.py
β”‚   β”‚   β”‚   β”œβ”€β”€ 🏷️ class PosteriorPredictiveSummary
β”‚   β”‚   β”‚   β”œβ”€β”€ 🏷️ class PosteriorSamples
β”‚   β”‚   β”‚   └── 🏷️ class BayesianFitResults
β”‚   β”‚   β”œβ”€β”€ πŸ“„ metrics.py
β”‚   β”‚   β”œβ”€β”€ πŸ“„ reporting.py
β”‚   β”‚   β”‚   └── 🏷️ class FitResults
β”‚   β”‚   └── πŸ“„ tracking.py
β”‚   β”‚       β”œβ”€β”€ 🏷️ class SamplerProgressUpdate
β”‚   β”‚       └── 🏷️ class FitProgressTracker
β”‚   β”œβ”€β”€ πŸ“ minimizers
β”‚   β”‚   β”œβ”€β”€ πŸ“„ __init__.py
β”‚   β”‚   β”œβ”€β”€ πŸ“„ base.py
β”‚   β”‚   β”‚   β”œβ”€β”€ 🏷️ class MinimizerFitOptions
β”‚   β”‚   β”‚   └── 🏷️ class MinimizerBase
β”‚   β”‚   β”œβ”€β”€ πŸ“„ bumps.py
β”‚   β”‚   β”‚   β”œβ”€β”€ 🏷️ class _BumpsEvaluationLimitError
β”‚   β”‚   β”‚   β”œβ”€β”€ 🏷️ class _EasyDiffractionFitness
β”‚   β”‚   β”‚   β”œβ”€β”€ 🏷️ class _BumpsProgressMonitor
β”‚   β”‚   β”‚   └── 🏷️ class BumpsMinimizer
β”‚   β”‚   β”œβ”€β”€ πŸ“„ bumps_amoeba.py
β”‚   β”‚   β”‚   └── 🏷️ class BumpsAmoebaMinimizer
β”‚   β”‚   β”œβ”€β”€ πŸ“„ bumps_de.py
β”‚   β”‚   β”‚   └── 🏷️ class BumpsDEMinimizer
β”‚   β”‚   β”œβ”€β”€ πŸ“„ bumps_dream.py
β”‚   β”‚   β”‚   β”œβ”€β”€ 🏷️ class _DreamRunContext
β”‚   β”‚   β”‚   β”œβ”€β”€ 🏷️ class _DreamDriverResult
β”‚   β”‚   β”‚   β”œβ”€β”€ 🏷️ class _DreamProgressMonitor
β”‚   β”‚   β”‚   └── 🏷️ class BumpsDreamMinimizer
β”‚   β”‚   β”œβ”€β”€ πŸ“„ bumps_lm.py
β”‚   β”‚   β”‚   └── 🏷️ class BumpsLmMinimizer
β”‚   β”‚   β”œβ”€β”€ πŸ“„ dfols.py
β”‚   β”‚   β”‚   └── 🏷️ class DfolsMinimizer
β”‚   β”‚   β”œβ”€β”€ πŸ“„ emcee.py
β”‚   β”‚   β”‚   β”œβ”€β”€ 🏷️ class _EmceePoolContext
β”‚   β”‚   β”‚   β”œβ”€β”€ 🏷️ class _EmceeLogProbability
β”‚   β”‚   β”‚   β”œβ”€β”€ 🏷️ class _EmceeProgressReporter
β”‚   β”‚   β”‚   └── 🏷️ class EmceeMinimizer
β”‚   β”‚   β”œβ”€β”€ πŸ“„ emcee_defaults.py
β”‚   β”‚   β”œβ”€β”€ πŸ“„ enums.py
β”‚   β”‚   β”‚   β”œβ”€β”€ 🏷️ class MinimizerTypeEnum
β”‚   β”‚   β”‚   β”œβ”€β”€ 🏷️ class InitializationMethodEnum
β”‚   β”‚   β”‚   └── 🏷️ class DreamPopulationInitializationEnum
β”‚   β”‚   β”œβ”€β”€ πŸ“„ factory.py
β”‚   β”‚   β”‚   └── 🏷️ class MinimizerFactory
β”‚   β”‚   β”œβ”€β”€ πŸ“„ lmfit.py
β”‚   β”‚   β”‚   └── 🏷️ class LmfitMinimizer
β”‚   β”‚   β”œβ”€β”€ πŸ“„ lmfit_least_squares.py
β”‚   β”‚   β”‚   └── 🏷️ class LmfitLeastSquaresMinimizer
β”‚   β”‚   └── πŸ“„ lmfit_leastsq.py
β”‚   β”‚       └── 🏷️ class LmfitLeastsqMinimizer
β”‚   β”œβ”€β”€ πŸ“„ __init__.py
β”‚   β”œβ”€β”€ πŸ“„ analysis.py
β”‚   β”‚   β”œβ”€β”€ 🏷️ class UndoFitOutcome
β”‚   β”‚   β”œβ”€β”€ 🏷️ class AnalysisDisplay
β”‚   β”‚   β”œβ”€β”€ 🏷️ class _AnalysisOwnerAccessorsMixin
β”‚   β”‚   β”œβ”€β”€ 🏷️ class _AnalysisPersistedCategoryAccessorsMixin
β”‚   β”‚   └── 🏷️ class Analysis
β”‚   β”œβ”€β”€ πŸ“„ enums.py
β”‚   β”‚   β”œβ”€β”€ 🏷️ class FitModeEnum
β”‚   β”‚   β”œβ”€β”€ 🏷️ class FitResultKindEnum
β”‚   β”‚   └── 🏷️ class FitCorrelationSourceEnum
β”‚   β”œβ”€β”€ πŸ“„ fitting.py
β”‚   β”‚   β”œβ”€β”€ 🏷️ class FitterFitOptions
β”‚   β”‚   └── 🏷️ class Fitter
β”‚   β”œβ”€β”€ πŸ“„ sequential.py
β”‚   β”‚   β”œβ”€β”€ 🏷️ class SequentialFitExtractRule
β”‚   β”‚   β”œβ”€β”€ 🏷️ class SequentialFitTemplate
β”‚   β”‚   β”œβ”€β”€ 🏷️ class SequentialProgressState
β”‚   β”‚   β”œβ”€β”€ 🏷️ class SequentialProgressContext
β”‚   β”‚   β”œβ”€β”€ 🏷️ class _ChunkProgressMetrics
β”‚   β”‚   └── 🏷️ class SequentialRunPlan
β”‚   └── πŸ“„ verification.py
β”‚       β”œβ”€β”€ 🏷️ class ClosenessMetrics
β”‚       β”œβ”€β”€ 🏷️ class AgreementTolerances
β”‚       └── 🏷️ class _AgreementCheck
β”œβ”€β”€ πŸ“ core
β”‚   β”œβ”€β”€ πŸ“„ __init__.py
β”‚   β”œβ”€β”€ πŸ“„ category.py
β”‚   β”‚   β”œβ”€β”€ 🏷️ class CategoryItem
β”‚   β”‚   └── 🏷️ class CategoryCollection
β”‚   β”œβ”€β”€ πŸ“„ category_owner.py
β”‚   β”‚   └── 🏷️ class CategoryOwner
β”‚   β”œβ”€β”€ πŸ“„ collection.py
β”‚   β”‚   └── 🏷️ class CollectionBase
β”‚   β”œβ”€β”€ πŸ“„ datablock.py
β”‚   β”‚   β”œβ”€β”€ 🏷️ class DatablockItem
β”‚   β”‚   └── 🏷️ class DatablockCollection
β”‚   β”œβ”€β”€ πŸ“„ diagnostic.py
β”‚   β”‚   └── 🏷️ class Diagnostics
β”‚   β”œβ”€β”€ πŸ“„ display_handler.py
β”‚   β”‚   └── 🏷️ class DisplayHandler
β”‚   β”œβ”€β”€ πŸ“„ errors.py
β”‚   β”‚   β”œβ”€β”€ 🏷️ class EasyDiffractionError
β”‚   β”‚   └── 🏷️ class EasyDiffractionWriterError
β”‚   β”œβ”€β”€ πŸ“„ factory.py
β”‚   β”‚   └── 🏷️ class FactoryBase
β”‚   β”œβ”€β”€ πŸ“„ guard.py
β”‚   β”‚   └── 🏷️ class GuardedBase
β”‚   β”œβ”€β”€ πŸ“„ identity.py
β”‚   β”‚   └── 🏷️ class Identity
β”‚   β”œβ”€β”€ πŸ“„ metadata.py
β”‚   β”‚   β”œβ”€β”€ 🏷️ class TypeInfo
β”‚   β”‚   β”œβ”€β”€ 🏷️ class Compatibility
β”‚   β”‚   └── 🏷️ class CalculatorSupport
β”‚   β”œβ”€β”€ πŸ“„ posterior.py
β”‚   β”‚   └── 🏷️ class PosteriorParameterSummary
β”‚   β”œβ”€β”€ πŸ“„ singleton.py
β”‚   β”‚   β”œβ”€β”€ 🏷️ class SingletonBase
β”‚   β”‚   └── 🏷️ class ConstraintsHandler
β”‚   β”œβ”€β”€ πŸ“„ switchable.py
β”‚   β”‚   └── 🏷️ class SwitchableCategoryBase
β”‚   β”œβ”€β”€ πŸ“„ units_vocabulary.py
β”‚   β”œβ”€β”€ πŸ“„ validation.py
β”‚   β”‚   β”œβ”€β”€ 🏷️ class DataTypeHints
β”‚   β”‚   β”œβ”€β”€ 🏷️ class DataTypes
β”‚   β”‚   β”œβ”€β”€ 🏷️ class ValidationStage
β”‚   β”‚   β”œβ”€β”€ 🏷️ class ValidatorBase
β”‚   β”‚   β”œβ”€β”€ 🏷️ class TypeValidator
β”‚   β”‚   β”œβ”€β”€ 🏷️ class RangeValidator
β”‚   β”‚   β”œβ”€β”€ 🏷️ class MembershipValidator
β”‚   β”‚   β”œβ”€β”€ 🏷️ class PermissiveMembershipValidator
β”‚   β”‚   β”œβ”€β”€ 🏷️ class RegexValidator
β”‚   β”‚   └── 🏷️ class AttributeSpec
β”‚   └── πŸ“„ variable.py
β”‚       β”œβ”€β”€ 🏷️ class GenericDescriptorBase
β”‚       β”œβ”€β”€ 🏷️ class GenericStringDescriptor
β”‚       β”œβ”€β”€ 🏷️ class GenericBoolDescriptor
β”‚       β”œβ”€β”€ 🏷️ class GenericNumericDescriptor
β”‚       β”œβ”€β”€ 🏷️ class GenericIntegerDescriptor
β”‚       β”œβ”€β”€ 🏷️ class GenericParameter
β”‚       β”œβ”€β”€ 🏷️ class StringDescriptor
β”‚       β”œβ”€β”€ 🏷️ class EnumDescriptor
β”‚       β”œβ”€β”€ 🏷️ class BoolDescriptor
β”‚       β”œβ”€β”€ 🏷️ class NumericDescriptor
β”‚       β”œβ”€β”€ 🏷️ class IntegerDescriptor
β”‚       └── 🏷️ class Parameter
β”œβ”€β”€ πŸ“ crystallography
β”‚   β”œβ”€β”€ πŸ“„ __init__.py
β”‚   β”œβ”€β”€ πŸ“„ crystallography.py
β”‚   β”‚   └── 🏷️ class WyckoffPosition
β”‚   └── πŸ“„ space_groups.py
β”œβ”€β”€ πŸ“ datablocks
β”‚   β”œβ”€β”€ πŸ“ experiment
β”‚   β”‚   β”œβ”€β”€ πŸ“ categories
β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“ background
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ __init__.py
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ base.py
β”‚   β”‚   β”‚   β”‚   β”‚   └── 🏷️ class BackgroundBase
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ chebyshev.py
β”‚   β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ 🏷️ class PolynomialTerm
β”‚   β”‚   β”‚   β”‚   β”‚   └── 🏷️ class ChebyshevPolynomialBackground
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ enums.py
β”‚   β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ 🏷️ class BackgroundTypeEnum
β”‚   β”‚   β”‚   β”‚   β”‚   └── 🏷️ class BackgroundEstimatorMethodEnum
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ estimate.py
β”‚   β”‚   β”‚   β”‚   β”‚   └── 🏷️ class BackgroundEstimate
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ factory.py
β”‚   β”‚   β”‚   β”‚   β”‚   └── 🏷️ class BackgroundFactory
β”‚   β”‚   β”‚   β”‚   └── πŸ“„ line_segment.py
β”‚   β”‚   β”‚   β”‚       β”œβ”€β”€ 🏷️ class LineSegment
β”‚   β”‚   β”‚   β”‚       └── 🏷️ class LineSegmentBackground
β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“ calculator
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ __init__.py
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ default.py
β”‚   β”‚   β”‚   β”‚   β”‚   └── 🏷️ class Calculator
β”‚   β”‚   β”‚   β”‚   └── πŸ“„ factory.py
β”‚   β”‚   β”‚   β”‚       └── 🏷️ class CalculatorCategoryFactory
β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“ data
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ __init__.py
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ bragg_pd.py
β”‚   β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ 🏷️ class PdDataPointBaseMixin
β”‚   β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ 🏷️ class PdCwlDataPointMixin
β”‚   β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ 🏷️ class PdTofDataPointMixin
β”‚   β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ 🏷️ class PdCwlDataPoint
β”‚   β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ 🏷️ class PdTofDataPoint
β”‚   β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ 🏷️ class PdDataBase
β”‚   β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ 🏷️ class PdCwlData
β”‚   β”‚   β”‚   β”‚   β”‚   └── 🏷️ class PdTofData
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ factory.py
β”‚   β”‚   β”‚   β”‚   β”‚   └── 🏷️ class DataFactory
β”‚   β”‚   β”‚   β”‚   └── πŸ“„ total_pd.py
β”‚   β”‚   β”‚   β”‚       β”œβ”€β”€ 🏷️ class TotalDataPoint
β”‚   β”‚   β”‚   β”‚       β”œβ”€β”€ 🏷️ class TotalDataBase
β”‚   β”‚   β”‚   β”‚       └── 🏷️ class TotalData
β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“ data_range
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ __init__.py
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ base.py
β”‚   β”‚   β”‚   β”‚   β”‚   └── 🏷️ class DataRangeBase
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ cwl.py
β”‚   β”‚   β”‚   β”‚   β”‚   └── 🏷️ class CwlPdDataRange
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ factory.py
β”‚   β”‚   β”‚   β”‚   β”‚   └── 🏷️ class DataRangeFactory
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ sc.py
β”‚   β”‚   β”‚   β”‚   β”‚   └── 🏷️ class ScDataRange
β”‚   β”‚   β”‚   β”‚   └── πŸ“„ tof.py
β”‚   β”‚   β”‚   β”‚       └── 🏷️ class TofPdDataRange
β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“ diffrn
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ __init__.py
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ default.py
β”‚   β”‚   β”‚   β”‚   β”‚   └── 🏷️ class DefaultDiffrn
β”‚   β”‚   β”‚   β”‚   └── πŸ“„ factory.py
β”‚   β”‚   β”‚   β”‚       └── 🏷️ class DiffrnFactory
β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“ excluded_regions
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ __init__.py
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ default.py
β”‚   β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ 🏷️ class ExcludedRegion
β”‚   β”‚   β”‚   β”‚   β”‚   └── 🏷️ class ExcludedRegions
β”‚   β”‚   β”‚   β”‚   └── πŸ“„ factory.py
β”‚   β”‚   β”‚   β”‚       └── 🏷️ class ExcludedRegionsFactory
β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“ experiment_type
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ __init__.py
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ default.py
β”‚   β”‚   β”‚   β”‚   β”‚   └── 🏷️ class ExperimentType
β”‚   β”‚   β”‚   β”‚   └── πŸ“„ factory.py
β”‚   β”‚   β”‚   β”‚       └── 🏷️ class ExperimentTypeFactory
β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“ extinction
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ __init__.py
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ base.py
β”‚   β”‚   β”‚   β”‚   β”‚   └── 🏷️ class ExtinctionBase
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ becker_coppens.py
β”‚   β”‚   β”‚   β”‚   β”‚   └── 🏷️ class BeckerCoppensExtinction
β”‚   β”‚   β”‚   β”‚   └── πŸ“„ factory.py
β”‚   β”‚   β”‚   β”‚       └── 🏷️ class ExtinctionFactory
β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“ instrument
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ __init__.py
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ base.py
β”‚   β”‚   β”‚   β”‚   β”‚   └── 🏷️ class InstrumentBase
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ cwl.py
β”‚   β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ 🏷️ class CwlInstrumentBase
β”‚   β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ 🏷️ class CwlScInstrument
β”‚   β”‚   β”‚   β”‚   β”‚   └── 🏷️ class CwlPdInstrument
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ factory.py
β”‚   β”‚   β”‚   β”‚   β”‚   └── 🏷️ class InstrumentFactory
β”‚   β”‚   β”‚   β”‚   └── πŸ“„ tof.py
β”‚   β”‚   β”‚   β”‚       β”œβ”€β”€ 🏷️ class TofScInstrument
β”‚   β”‚   β”‚   β”‚       └── 🏷️ class TofPdInstrument
β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“ linked_crystal
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ __init__.py
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ default.py
β”‚   β”‚   β”‚   β”‚   β”‚   └── 🏷️ class LinkedCrystal
β”‚   β”‚   β”‚   β”‚   └── πŸ“„ factory.py
β”‚   β”‚   β”‚   β”‚       └── 🏷️ class LinkedCrystalFactory
β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“ linked_phases
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ __init__.py
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ default.py
β”‚   β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ 🏷️ class LinkedPhase
β”‚   β”‚   β”‚   β”‚   β”‚   └── 🏷️ class LinkedPhases
β”‚   β”‚   β”‚   β”‚   └── πŸ“„ factory.py
β”‚   β”‚   β”‚   β”‚       └── 🏷️ class LinkedPhasesFactory
β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“ peak
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ __init__.py
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ base.py
β”‚   β”‚   β”‚   β”‚   β”‚   └── 🏷️ class PeakBase
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ cwl.py
β”‚   β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ 🏷️ class CwlPseudoVoigt
β”‚   β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ 🏷️ class CwlPseudoVoigtEmpiricalAsymmetry
β”‚   β”‚   β”‚   β”‚   β”‚   └── 🏷️ class CwlThompsonCoxHastings
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ cwl_mixins.py
β”‚   β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ 🏷️ class CwlBroadeningMixin
β”‚   β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ 🏷️ class EmpiricalAsymmetryMixin
β”‚   β”‚   β”‚   β”‚   β”‚   └── 🏷️ class FcjAsymmetryMixin
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ factory.py
β”‚   β”‚   β”‚   β”‚   β”‚   └── 🏷️ class PeakFactory
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ tof.py
β”‚   β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ 🏷️ class TofPseudoVoigt
β”‚   β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ 🏷️ class TofJorgensen
β”‚   β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ 🏷️ class TofJorgensenVonDreele
β”‚   β”‚   β”‚   β”‚   β”‚   └── 🏷️ class TofDoubleJorgensenVonDreele
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ tof_mixins.py
β”‚   β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ 🏷️ class TofGaussianBroadeningMixin
β”‚   β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ 🏷️ class TofLorentzianBroadeningMixin
β”‚   β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ 🏷️ class TofBackToBackExponentialMixin
β”‚   β”‚   β”‚   β”‚   β”‚   └── 🏷️ class TofDoubleExponentialMixin
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ total.py
β”‚   β”‚   β”‚   β”‚   β”‚   └── 🏷️ class TotalGaussianDampedSinc
β”‚   β”‚   β”‚   β”‚   └── πŸ“„ total_mixins.py
β”‚   β”‚   β”‚   β”‚       └── 🏷️ class TotalBroadeningMixin
β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“ refln
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ __init__.py
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ bragg_pd.py
β”‚   β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ 🏷️ class PowderReflnBase
β”‚   β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ 🏷️ class PowderCwlRefln
β”‚   β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ 🏷️ class PowderTofRefln
β”‚   β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ 🏷️ class PowderReflnDataBase
β”‚   β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ 🏷️ class PowderCwlReflnData
β”‚   β”‚   β”‚   β”‚   β”‚   └── 🏷️ class PowderTofReflnData
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ bragg_sc.py
β”‚   β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ 🏷️ class Refln
β”‚   β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ 🏷️ class TofRefln
β”‚   β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ 🏷️ class ReflnDataBase
β”‚   β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ 🏷️ class CwlReflnData
β”‚   β”‚   β”‚   β”‚   β”‚   └── 🏷️ class TofReflnData
β”‚   β”‚   β”‚   β”‚   └── πŸ“„ factory.py
β”‚   β”‚   β”‚   β”‚       └── 🏷️ class ReflnFactory
β”‚   β”‚   β”‚   └── πŸ“„ __init__.py
β”‚   β”‚   β”œβ”€β”€ πŸ“ item
β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ __init__.py
β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ base.py
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ 🏷️ class ExperimentBase
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ 🏷️ class ScExperimentBase
β”‚   β”‚   β”‚   β”‚   └── 🏷️ class PdExperimentBase
β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ bragg_pd.py
β”‚   β”‚   β”‚   β”‚   └── 🏷️ class BraggPdExperiment
β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ bragg_sc.py
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ 🏷️ class CwlScExperiment
β”‚   β”‚   β”‚   β”‚   └── 🏷️ class TofScExperiment
β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ enums.py
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ 🏷️ class SampleFormEnum
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ 🏷️ class ScatteringTypeEnum
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ 🏷️ class RadiationProbeEnum
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ 🏷️ class BeamModeEnum
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ 🏷️ class CalculatorEnum
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ 🏷️ class PeakProfileTypeEnum
β”‚   β”‚   β”‚   β”‚   └── 🏷️ class ExtinctionModelEnum
β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ factory.py
β”‚   β”‚   β”‚   β”‚   └── 🏷️ class ExperimentFactory
β”‚   β”‚   β”‚   └── πŸ“„ total_pd.py
β”‚   β”‚   β”‚       └── 🏷️ class TotalPdExperiment
β”‚   β”‚   β”œβ”€β”€ πŸ“„ __init__.py
β”‚   β”‚   └── πŸ“„ collection.py
β”‚   β”‚       └── 🏷️ class Experiments
β”‚   β”œβ”€β”€ πŸ“ structure
β”‚   β”‚   β”œβ”€β”€ πŸ“ categories
β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“ atom_site_aniso
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ __init__.py
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ default.py
β”‚   β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ 🏷️ class AtomSiteAniso
β”‚   β”‚   β”‚   β”‚   β”‚   └── 🏷️ class AtomSiteAnisoCollection
β”‚   β”‚   β”‚   β”‚   └── πŸ“„ factory.py
β”‚   β”‚   β”‚   β”‚       └── 🏷️ class AtomSiteAnisoFactory
β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“ atom_sites
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ __init__.py
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ default.py
β”‚   β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ 🏷️ class AtomSite
β”‚   β”‚   β”‚   β”‚   β”‚   └── 🏷️ class AtomSites
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ enums.py
β”‚   β”‚   β”‚   β”‚   β”‚   └── 🏷️ class AdpTypeEnum
β”‚   β”‚   β”‚   β”‚   └── πŸ“„ factory.py
β”‚   β”‚   β”‚   β”‚       └── 🏷️ class AtomSitesFactory
β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“ cell
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ __init__.py
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ default.py
β”‚   β”‚   β”‚   β”‚   β”‚   └── 🏷️ class Cell
β”‚   β”‚   β”‚   β”‚   └── πŸ“„ factory.py
β”‚   β”‚   β”‚   β”‚       └── 🏷️ class CellFactory
β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“ geom
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ __init__.py
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ default.py
β”‚   β”‚   β”‚   β”‚   β”‚   └── 🏷️ class Geom
β”‚   β”‚   β”‚   β”‚   └── πŸ“„ factory.py
β”‚   β”‚   β”‚   β”‚       └── 🏷️ class GeomFactory
β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“ space_group
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ __init__.py
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ default.py
β”‚   β”‚   β”‚   β”‚   β”‚   └── 🏷️ class SpaceGroup
β”‚   β”‚   β”‚   β”‚   └── πŸ“„ factory.py
β”‚   β”‚   β”‚   β”‚       └── 🏷️ class SpaceGroupFactory
β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“ space_group_wyckoff
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ __init__.py
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ default.py
β”‚   β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ 🏷️ class SpaceGroupWyckoff
β”‚   β”‚   β”‚   β”‚   β”‚   └── 🏷️ class SpaceGroupWyckoffCollection
β”‚   β”‚   β”‚   β”‚   └── πŸ“„ factory.py
β”‚   β”‚   β”‚   β”‚       └── 🏷️ class SpaceGroupWyckoffFactory
β”‚   β”‚   β”‚   └── πŸ“„ __init__.py
β”‚   β”‚   β”œβ”€β”€ πŸ“ item
β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ __init__.py
β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ base.py
β”‚   β”‚   β”‚   β”‚   └── 🏷️ class Structure
β”‚   β”‚   β”‚   └── πŸ“„ factory.py
β”‚   β”‚   β”‚       └── 🏷️ class StructureFactory
β”‚   β”‚   β”œβ”€β”€ πŸ“„ __init__.py
β”‚   β”‚   └── πŸ“„ collection.py
β”‚   β”‚       └── 🏷️ class Structures
β”‚   └── πŸ“„ __init__.py
β”œβ”€β”€ πŸ“ display
β”‚   β”œβ”€β”€ πŸ“ plotters
β”‚   β”‚   β”œβ”€β”€ πŸ“ assets
β”‚   β”‚   β”œβ”€β”€ πŸ“„ __init__.py
β”‚   β”‚   β”œβ”€β”€ πŸ“„ ascii.py
β”‚   β”‚   β”‚   └── 🏷️ class AsciiPlotter
β”‚   β”‚   β”œβ”€β”€ πŸ“„ base.py
β”‚   β”‚   β”‚   β”œβ”€β”€ 🏷️ class BraggTickSet
β”‚   β”‚   β”‚   β”œβ”€β”€ 🏷️ class PowderMeasVsCalcSpec
β”‚   β”‚   β”‚   β”œβ”€β”€ 🏷️ class XAxisType
β”‚   β”‚   β”‚   └── 🏷️ class PlotterBase
β”‚   β”‚   └── πŸ“„ plotly.py
β”‚   β”‚       β”œβ”€β”€ 🏷️ class PowderCompositeRows
β”‚   β”‚       └── 🏷️ class PlotlyPlotter
β”‚   β”œβ”€β”€ πŸ“ structure
β”‚   β”‚   β”œβ”€β”€ πŸ“ assets
β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ __init__.py
β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ colors.py
β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ elements.py
β”‚   β”‚   β”‚   └── πŸ“„ radii.py
β”‚   β”‚   β”œβ”€β”€ πŸ“ renderers
β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ __init__.py
β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ ascii.py
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ 🏷️ class _Orientation
β”‚   β”‚   β”‚   β”‚   └── 🏷️ class AsciiStructureRenderer
β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ base.py
β”‚   β”‚   β”‚   β”‚   └── 🏷️ class StructureRendererBase
β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ raster.py
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ 🏷️ class _Canvas
β”‚   β”‚   β”‚   β”‚   └── 🏷️ class RasterStructureRenderer
β”‚   β”‚   β”‚   └── πŸ“„ threejs.py
β”‚   β”‚   β”‚       └── 🏷️ class ThreeJsStructureRenderer
β”‚   β”‚   β”œβ”€β”€ πŸ“ templates
β”‚   β”‚   β”œβ”€β”€ πŸ“„ __init__.py
β”‚   β”‚   β”œβ”€β”€ πŸ“„ builder.py
β”‚   β”‚   β”‚   β”œβ”€β”€ 🏷️ class FeatureAvailability
β”‚   β”‚   β”‚   β”œβ”€β”€ 🏷️ class _RenderContext
β”‚   β”‚   β”‚   └── 🏷️ class _SceneAtom
β”‚   β”‚   β”œβ”€β”€ πŸ“„ enums.py
β”‚   β”‚   β”‚   β”œβ”€β”€ 🏷️ class ViewerEngineEnum
β”‚   β”‚   β”‚   β”œβ”€β”€ 🏷️ class AtomViewEnum
β”‚   β”‚   β”‚   └── 🏷️ class ColorSchemeEnum
β”‚   β”‚   β”œβ”€β”€ πŸ“„ scene.py
β”‚   β”‚   β”‚   β”œβ”€β”€ 🏷️ class AtomSphere
β”‚   β”‚   β”‚   β”œβ”€β”€ 🏷️ class OccupancyWedge
β”‚   β”‚   β”‚   β”œβ”€β”€ 🏷️ class OccupancyWedgeSphere
β”‚   β”‚   β”‚   β”œβ”€β”€ 🏷️ class AdpEllipsoid
β”‚   β”‚   β”‚   β”œβ”€β”€ 🏷️ class Bond
β”‚   β”‚   β”‚   β”œβ”€β”€ 🏷️ class MomentArrow
β”‚   β”‚   β”‚   β”œβ”€β”€ 🏷️ class CellEdge
β”‚   β”‚   β”‚   β”œβ”€β”€ 🏷️ class CellEdges
β”‚   β”‚   β”‚   β”œβ”€β”€ 🏷️ class AxisArrow
β”‚   β”‚   β”‚   β”œβ”€β”€ 🏷️ class AxisTriad
β”‚   β”‚   β”‚   β”œβ”€β”€ 🏷️ class TextLabel
β”‚   β”‚   β”‚   β”œβ”€β”€ 🏷️ class LegendEntry
β”‚   β”‚   β”‚   └── 🏷️ class StructureScene
β”‚   β”‚   └── πŸ“„ viewing.py
β”‚   β”‚       β”œβ”€β”€ 🏷️ class ViewerFactory
β”‚   β”‚       └── 🏷️ class Viewer
β”‚   β”œβ”€β”€ πŸ“ tablers
β”‚   β”‚   β”œβ”€β”€ πŸ“„ __init__.py
β”‚   β”‚   β”œβ”€β”€ πŸ“„ base.py
β”‚   β”‚   β”‚   └── 🏷️ class TableBackendBase
β”‚   β”‚   β”œβ”€β”€ πŸ“„ pandas.py
β”‚   β”‚   β”‚   └── 🏷️ class PandasTableBackend
β”‚   β”‚   └── πŸ“„ rich.py
β”‚   β”‚       └── 🏷️ class RichTableBackend
β”‚   β”œβ”€β”€ πŸ“„ __init__.py
β”‚   β”œβ”€β”€ πŸ“„ base.py
β”‚   β”‚   β”œβ”€β”€ 🏷️ class RendererBase
β”‚   β”‚   └── 🏷️ class RendererFactoryBase
β”‚   β”œβ”€β”€ πŸ“„ plotting.py
β”‚   β”‚   β”œβ”€β”€ 🏷️ class PlotterEngineEnum
β”‚   β”‚   β”œβ”€β”€ 🏷️ class PosteriorPairPlotStyleEnum
β”‚   β”‚   β”œβ”€β”€ 🏷️ class _MeasVsCalcPlotOptions
β”‚   β”‚   β”œβ”€β”€ 🏷️ class _PowderMeasVsCalcSeries
β”‚   β”‚   β”œβ”€β”€ 🏷️ class _PosteriorDistributionContext
β”‚   β”‚   β”œβ”€β”€ 🏷️ class _PosteriorPairsContext
β”‚   β”‚   β”œβ”€β”€ 🏷️ class _CorrelationHeatmapContext
β”‚   β”‚   β”œβ”€β”€ 🏷️ class _PosteriorPairsLegendState
β”‚   β”‚   β”œβ”€β”€ 🏷️ class Plotter
β”‚   β”‚   └── 🏷️ class PlotterFactory
β”‚   β”œβ”€β”€ πŸ“„ progress.py
β”‚   β”‚   β”œβ”€β”€ 🏷️ class _TerminalLiveHandle
β”‚   β”‚   β”œβ”€β”€ 🏷️ class ActivityIndicator
β”‚   β”‚   β”œβ”€β”€ 🏷️ class _ActivityIndicatorContext
β”‚   β”‚   └── 🏷️ class NotebookFitStopControl
β”‚   β”œβ”€β”€ πŸ“„ tables.py
β”‚   β”‚   β”œβ”€β”€ 🏷️ class TableEngineEnum
β”‚   β”‚   β”œβ”€β”€ 🏷️ class TableRenderer
β”‚   β”‚   └── 🏷️ class TableRendererFactory
β”‚   β”œβ”€β”€ πŸ“„ theme.py
β”‚   β”‚   └── 🏷️ class DisplayThemeColors
β”‚   └── πŸ“„ utils.py
β”‚       └── 🏷️ class JupyterScrollManager
β”œβ”€β”€ πŸ“ io
β”‚   β”œβ”€β”€ πŸ“ cif
β”‚   β”‚   β”œβ”€β”€ πŸ“„ __init__.py
β”‚   β”‚   β”œβ”€β”€ πŸ“„ handler.py
β”‚   β”‚   β”‚   └── 🏷️ class CifHandler
β”‚   β”‚   β”œβ”€β”€ πŸ“„ iucr_transformers.py
β”‚   β”‚   β”‚   β”œβ”€β”€ 🏷️ class IucrItem
β”‚   β”‚   β”‚   β”œβ”€β”€ 🏷️ class IucrLoop
β”‚   β”‚   β”‚   β”œβ”€β”€ 🏷️ class IucrCategoryTransformer
β”‚   β”‚   β”‚   β”œβ”€β”€ 🏷️ class WavelengthTransformer
β”‚   β”‚   β”‚   β”œβ”€β”€ 🏷️ class TofCalibrationTransformer
β”‚   β”‚   β”‚   β”œβ”€β”€ 🏷️ class ExcludedRegionsTransformer
β”‚   β”‚   β”‚   β”œβ”€β”€ 🏷️ class SymmetryOperationsTransformer
β”‚   β”‚   β”‚   └── 🏷️ class ExtinctionTransformer
β”‚   β”‚   β”œβ”€β”€ πŸ“„ iucr_writer.py
β”‚   β”‚   β”‚   β”œβ”€β”€ 🏷️ class _FormulaValues
β”‚   β”‚   β”‚   β”œβ”€β”€ 🏷️ class _PowderPhase
β”‚   β”‚   β”‚   └── 🏷️ class _PowderPattern
β”‚   β”‚   β”œβ”€β”€ πŸ“„ parse.py
β”‚   β”‚   └── πŸ“„ serialize.py
β”‚   β”œβ”€β”€ πŸ“„ __init__.py
β”‚   β”œβ”€β”€ πŸ“„ ascii.py
β”‚   └── πŸ“„ results_sidecar.py
β”œβ”€β”€ πŸ“ project
β”‚   β”œβ”€β”€ πŸ“ categories
β”‚   β”‚   β”œβ”€β”€ πŸ“ info
β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ __init__.py
β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ default.py
β”‚   β”‚   β”‚   β”‚   └── 🏷️ class ProjectInfo
β”‚   β”‚   β”‚   └── πŸ“„ factory.py
β”‚   β”‚   β”‚       └── 🏷️ class ProjectInfoFactory
β”‚   β”‚   β”œβ”€β”€ πŸ“ rendering_plot
β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ __init__.py
β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ default.py
β”‚   β”‚   β”‚   β”‚   └── 🏷️ class RenderingPlot
β”‚   β”‚   β”‚   └── πŸ“„ factory.py
β”‚   β”‚   β”‚       └── 🏷️ class RenderingPlotFactory
β”‚   β”‚   β”œβ”€β”€ πŸ“ rendering_structure
β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ __init__.py
β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ default.py
β”‚   β”‚   β”‚   β”‚   └── 🏷️ class RenderingStructure
β”‚   β”‚   β”‚   └── πŸ“„ factory.py
β”‚   β”‚   β”‚       └── 🏷️ class RenderingStructureFactory
β”‚   β”‚   β”œβ”€β”€ πŸ“ rendering_table
β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ __init__.py
β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ default.py
β”‚   β”‚   β”‚   β”‚   └── 🏷️ class RenderingTable
β”‚   β”‚   β”‚   └── πŸ“„ factory.py
β”‚   β”‚   β”‚       └── 🏷️ class RenderingTableFactory
β”‚   β”‚   β”œβ”€β”€ πŸ“ report
β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ __init__.py
β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ default.py
β”‚   β”‚   β”‚   β”‚   └── 🏷️ class Report
β”‚   β”‚   β”‚   └── πŸ“„ factory.py
β”‚   β”‚   β”‚       └── 🏷️ class ReportFactory
β”‚   β”‚   β”œβ”€β”€ πŸ“ structure_style
β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ __init__.py
β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ default.py
β”‚   β”‚   β”‚   β”‚   └── 🏷️ class StructureStyle
β”‚   β”‚   β”‚   └── πŸ“„ factory.py
β”‚   β”‚   β”‚       └── 🏷️ class StructureStyleFactory
β”‚   β”‚   β”œβ”€β”€ πŸ“ structure_view
β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ __init__.py
β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ default.py
β”‚   β”‚   β”‚   β”‚   └── 🏷️ class StructureView
β”‚   β”‚   β”‚   └── πŸ“„ factory.py
β”‚   β”‚   β”‚       └── 🏷️ class StructureViewFactory
β”‚   β”‚   β”œβ”€β”€ πŸ“ verbosity
β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ __init__.py
β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ default.py
β”‚   β”‚   β”‚   β”‚   └── 🏷️ class Verbosity
β”‚   β”‚   β”‚   └── πŸ“„ factory.py
β”‚   β”‚   β”‚       └── 🏷️ class VerbosityFactory
β”‚   β”‚   └── πŸ“„ __init__.py
β”‚   β”œβ”€β”€ πŸ“„ __init__.py
β”‚   β”œβ”€β”€ πŸ“„ display.py
β”‚   β”‚   β”œβ”€β”€ 🏷️ class PatternOptionStatus
β”‚   β”‚   β”œβ”€β”€ 🏷️ class ParameterDisplay
β”‚   β”‚   β”œβ”€β”€ 🏷️ class FitDisplay
β”‚   β”‚   β”œβ”€β”€ 🏷️ class PosteriorDisplay
β”‚   β”‚   └── 🏷️ class ProjectDisplay
β”‚   β”œβ”€β”€ πŸ“„ project.py
β”‚   β”‚   └── 🏷️ class Project
β”‚   β”œβ”€β”€ πŸ“„ project_config.py
β”‚   β”‚   └── 🏷️ class ProjectConfig
β”‚   └── πŸ“„ project_info.py
β”œβ”€β”€ πŸ“ report
β”‚   β”œβ”€β”€ πŸ“ templates
β”‚   β”‚   β”œβ”€β”€ πŸ“ html
β”‚   β”‚   └── πŸ“ tex
β”‚   β”œβ”€β”€ πŸ“„ __init__.py
β”‚   β”œβ”€β”€ πŸ“„ data_context.py
β”‚   β”‚   └── 🏷️ class ReportDataContext
β”‚   β”œβ”€β”€ πŸ“„ enums.py
β”‚   β”‚   └── 🏷️ class ReportFormatEnum
β”‚   β”œβ”€β”€ πŸ“„ fit_plot.py
β”‚   β”œβ”€β”€ πŸ“„ html_renderer.py
β”‚   β”œβ”€β”€ πŸ“„ pdf_compiler.py
β”‚   β”œβ”€β”€ πŸ“„ style.py
β”‚   └── πŸ“„ tex_renderer.py
β”œβ”€β”€ πŸ“ utils
β”‚   β”œβ”€β”€ πŸ“„ __init__.py
β”‚   β”œβ”€β”€ πŸ“„ enums.py
β”‚   β”‚   └── 🏷️ class VerbosityEnum
β”‚   β”œβ”€β”€ πŸ“„ environment.py
β”‚   β”‚   └── 🏷️ class FigureEmbedMode
β”‚   β”œβ”€β”€ πŸ“„ logging.py
β”‚   β”‚   β”œβ”€β”€ 🏷️ class IconifiedRichHandler
β”‚   β”‚   β”œβ”€β”€ 🏷️ class ConsoleManager
β”‚   β”‚   β”œβ”€β”€ 🏷️ class LoggerConfig
β”‚   β”‚   β”œβ”€β”€ 🏷️ class ExceptionHookManager
β”‚   β”‚   β”œβ”€β”€ 🏷️ class Logger
β”‚   β”‚   └── 🏷️ class ConsolePrinter
β”‚   β”œβ”€β”€ πŸ“„ matplotlib_config.py
β”‚   └── πŸ“„ utils.py
β”œβ”€β”€ πŸ“„ __init__.py
└── πŸ“„ __main__.py