AbdulElahGwaith's picture
Upload folder using huggingface_hub
7b715bc verified
// Copyright 2019 Google Inc. All Rights Reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// https://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
using System.Text;
// Copied from Google.Api.Generator.Utils
namespace Google.Api.Generator.Utils
{
public static class SystemExtensions
{
private static char MaybeForceCase(char c, bool? toUpper) =>
toUpper is bool upper ? upper ? char.ToUpperInvariant(c) : char.ToLowerInvariant(c) : c;
private static string Camelizer(string s, bool firstUpper, bool forceAllChars, bool? upperAfterDigit) =>
s.Aggregate((upper: (bool?) firstUpper, prev: '\0', sb: new StringBuilder()), (acc, c) =>
!char.IsLetterOrDigit(c) ?
(acc.sb.Length > 0 ? true : firstUpper, c, acc.sb) :
(char.IsDigit(c) ? upperAfterDigit : forceAllChars ? (bool?) false : null, c,
acc.sb.Append(MaybeForceCase(c, char.IsLower(acc.prev) && char.IsUpper(c) ? true : acc.upper))),
acc => acc.sb.ToString());
public static string ToLowerCamelCase(this string s, bool forceAllChars = false, bool? upperAfterDigit = true) => Camelizer(s, firstUpper: false, forceAllChars, upperAfterDigit);
public static string ToUpperCamelCase(this string s, bool forceAllChars = false, bool? upperAfterDigit = true) => Camelizer(s, firstUpper: true, forceAllChars, upperAfterDigit);
public static string RemoveSuffix(this string s, string suffix) => s.EndsWith(suffix) ? s.Substring(0, s.Length - suffix.Length) : s;
}
}