Removed SortContainers

useCeilingAverage as parameter
This commit is contained in:
2023-08-08 21:09:26 -07:00
parent 77f800d1a4
commit b3da09c757
33 changed files with 147 additions and 381 deletions

View File

@ -558,6 +558,7 @@ public partial class DlibDotNet
string focusRelativePath = Path.GetFullPath(string.Concat(_Configuration.PropertyConfiguration.RootDirectory, _Configuration.FocusDirectory));
bool? isFocusRelativePath = string.IsNullOrEmpty(_Configuration.FocusDirectory) ? null : container.SourceDirectory.StartsWith(focusRelativePath);
string facePartsCollectionDirectory = _Configuration.CopyFacesAndSaveFaceLandmarkForOutputResolutions.Contains(outputResolution) ? _FaceParts.GetFacePartsDirectory(_Configuration.PropertyConfiguration, d2ResultsFullGroupDirectory, item: filteredItems.First(), includeNameWithoutExtension: false) : string.Empty;
bool anyPropertiesChangedForX = _Configuration.PropertyConfiguration.PropertiesChangedForProperty || _Configuration.PropertiesChangedForDistance || _Configuration.PropertiesChangedForFaces || _Configuration.PropertiesChangedForIndex || _Configuration.PropertiesChangedForMetadata || _Configuration.PropertiesChangedForResize;
using ProgressBar progressBar = new(filteredItems.Length, message, options);
_ = Parallel.For(0, filteredItems.Length, parallelOptions, (i, state) =>
{
@ -579,7 +580,7 @@ public partial class DlibDotNet
containerDateTimes,
isFocusRelativePath,
facePartsCollectionDirectory);
if (i == 0 || sourceDirectoryChanges.Count > 0)
if (!anyPropertiesChangedForX && (i == 0 || sourceDirectoryChanges.Count > 0))
progressBar.Tick();
}
catch (Exception ex)
@ -1131,7 +1132,7 @@ public partial class DlibDotNet
ProgressBar progressBar;
(cResultsFullGroupDirectory, _, _, _) = GetResultsFullGroupDirectories(outputResolution);
IReadOnlyDictionary<string, string[]> fileGroups = Shared.Models.Stateless.Methods.IPath.GetKeyValuePairs(_Configuration.PropertyConfiguration, cResultsFullGroupDirectory, new string[] { _Configuration.PropertyConfiguration.ResultContent });
filesCollection = IDirectory.GetFilesCollection(_Configuration.PropertyConfiguration.RootDirectory, directorySearchFilter, fileSearchFilter);
filesCollection = IDirectory.GetFilesCollection(_Configuration.PropertyConfiguration.RootDirectory, directorySearchFilter, fileSearchFilter, useCeilingAverage: false);
message = $") Selecting for ## pattern directory - {(int)Math.Floor(new TimeSpan(DateTime.Now.Ticks - ticks).TotalSeconds)} total second(s)";
count = filesCollection.Select(l => l.Length).Sum();
filesCollectionCountIsOne = filesCollection.Count == 1;
@ -1174,7 +1175,7 @@ public partial class DlibDotNet
if (outputResolution.Any(l => char.IsNumber(l)))
continue;
(cResultsFullGroupDirectory, _, _, _) = GetResultsFullGroupDirectories(outputResolution);
filesCollection = IDirectory.GetFilesCollection(Path.Combine(cResultsFullGroupDirectory, _Configuration.PropertyConfiguration.ResultContent, _Configuration.PropertyConfiguration.ResultAllInOne), directorySearchFilter, fileSearchFilter);
filesCollection = IDirectory.GetFilesCollection(Path.Combine(cResultsFullGroupDirectory, _Configuration.PropertyConfiguration.ResultContent, _Configuration.PropertyConfiguration.ResultAllInOne), directorySearchFilter, fileSearchFilter, useCeilingAverage: true);
count = filesCollection.Select(l => l.Length).Sum();
break;
}
@ -1194,7 +1195,6 @@ public partial class DlibDotNet
fileNameToCollection = !Directory.Exists(fPhotoPrismSingletonDirectory) ? fileNameToCollection = new() : F_PhotoPrism.GetFileNameToCollection(fPhotoPrismSingletonDirectory);
B_Metadata metadata = new(_Configuration.PropertyConfiguration, _Configuration.ForceMetadataLastWriteTimeToCreationTime, _Configuration.PropertiesChangedForMetadata, bResultsFullGroupDirectory);
mapLogic ??= new(_AppSettings.MaxDegreeOfParallelism, _Configuration.PropertyConfiguration, _MapConfiguration, _Distance, personContainers, ticks, a2PeopleSingletonDirectory, eDistanceContentDirectory);
containers = Shared.Models.Stateless.Methods.IContainer.SortContainers(_ArgZeroIsConfigurationRootDirectory, argZero, containers);
FullDoWork(argZero, propertyRoot, ticks, aResultsFullGroupDirectory, bResultsFullGroupDirectory, t, containers, propertyLogic, metadata, fileNameToCollection, mapLogic);
ReadOnlyCollection<Item> distinctFilteredItems = Shared.Models.Stateless.Methods.IContainer.GetItems(_Configuration.PropertyConfiguration, new(containers), distinctItems: true, filterItems: true);
if (_Configuration.LookForAbandoned)
@ -1233,7 +1233,7 @@ public partial class DlibDotNet
&& _Exceptions.Count == 0)
MapLogic(ticks, new(containers), fPhotoPrismContentDirectory, mapLogic, outputResolution, new(personKeyToIds), distinctFilteredFaces, distinctFilteredMappingCollection);
if (_Configuration.SaveRandomForOutputResolutions.Contains(outputResolution) && personKeyToIds.Count > 0 && distinctFilteredMappingCollection.Count > 0)
_Random.Random(_Configuration.PropertyConfiguration, outputResolution, personKeyToIds, distinctFilteredMappingCollection);
_Random.Random(_Configuration.PropertyConfiguration, _Configuration.ValidKeyWordsToIgnoreInRandom, outputResolution, personKeyToIds, distinctFilteredMappingCollection);
if (_IsEnvironment.Development)
continue;
if (!_IsEnvironment.Development)

View File

@ -92,6 +92,7 @@ public class Configuration
[Display(Name = "Sorting Minimum to use Sigma"), Required] public int? SortingMinimumToUseSigma { get; set; }
[Display(Name = "Test Distance Results"), Required] public bool? TestDistanceResults { get; set; }
[Display(Name = "Use Filter Tries"), Required] public int? UseFilterTries { get; set; }
[Display(Name = "Valid KeyWords to Ignore in Random"), Required] public string[] ValidKeyWordsToIgnoreInRandom { get; set; }
[Display(Name = "Valid Resolutions"), Required] public string[] ValidResolutions { get; set; }
#nullable restore
@ -241,6 +242,8 @@ public class Configuration
throw new NullReferenceException(nameof(configuration.TestDistanceResults));
if (configuration.UseFilterTries is null)
throw new NullReferenceException(nameof(configuration.UseFilterTries));
if (configuration.ValidKeyWordsToIgnoreInRandom is null)
throw new NullReferenceException(nameof(configuration.ValidKeyWordsToIgnoreInRandom));
if (configuration.ValidResolutions is null)
throw new NullReferenceException(nameof(configuration.ValidResolutions));
_ = DateTime.Now.AddDays(-configuration.RangeDaysDeltaTolerance[1]);
@ -324,6 +327,7 @@ public class Configuration
configuration.SortingMinimumToUseSigma.Value,
configuration.TestDistanceResults.Value,
configuration.UseFilterTries.Value,
configuration.ValidKeyWordsToIgnoreInRandom,
configuration.ValidResolutions);
return result;
}

View File

@ -89,6 +89,7 @@ public class Configuration
public bool TestDistanceResults { init; get; }
public int UseFilterTries { init; get; }
public string[] ValidResolutions { init; get; }
public string[] ValidKeyWordsToIgnoreInRandom { init; get; }
public bool DeletePossibleDuplicates { get; internal set; }
[JsonConstructor]
@ -172,6 +173,7 @@ public class Configuration
int sortingSigma,
bool testDistanceResults,
int useFilterTries,
string[] validKeyWordsToIgnoreInRandom,
string[] validResolutions)
{
_PropertyConfiguration = propertyConfiguration;
@ -254,6 +256,7 @@ public class Configuration
SortingMinimumToUseSigma = sortingSigma;
TestDistanceResults = testDistanceResults;
UseFilterTries = useFilterTries;
ValidKeyWordsToIgnoreInRandom = validKeyWordsToIgnoreInRandom;
ValidResolutions = validResolutions;
}

View File

@ -59,7 +59,7 @@ internal class F_Random
return results;
}
internal void Random(Property.Models.Configuration configuration, string outputResolution, Dictionary<long, List<int>> personKeyToIds, ReadOnlyCollection<Shared.Models.Mapping> mappingCollection)
internal void Random(Property.Models.Configuration configuration, string[] validKeyWordsToIgnoreInRandom, string outputResolution, Dictionary<long, List<int>> personKeyToIds, ReadOnlyCollection<Shared.Models.Mapping> mappingCollection)
{
string key;
string json;
@ -79,6 +79,8 @@ internal class F_Random
{
if (distinctCollection.Contains(mapping.MappingFromItem.Id))
continue;
if (mapping.MappingFromItem.Keywords is not null && mapping.MappingFromItem.Keywords.Any(l => validKeyWordsToIgnoreInRandom.Contains(l)))
continue;
if (mapping.MappingFromItem.ImageFileHolder.DirectoryName is null)
continue;
relativePaths.Add(mapping.MappingFromItem.RelativePath);